home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 37
/
Aminet 37 (2000)(Schatztruhe)[!][Jun 2000].iso
/
Aminet
/
dev
/
lang
/
sofa.lha
/
sofa
/
smalleiffel
/
bin_c
/
compile_to_c8.c
< prev
next >
Wrap
C/C++ Source or Header
|
2000-03-25
|
117KB
|
4,683 lines
/*
-- ANSI C code generated by :
-- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.76Beta#1)--
-- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
-- Dominique COLNET and Suzanne COLLIN - colnet@loria.fr --
-- http://SmallEiffel.loria.fr/ --
*/
#include "compile_to_c.h"
void r130run_feature_has_result(T130* C){
/*[IF*/
if((X334result_type((/*RF2*/(C)->_run_feature/*8*/)))==((void*)(NULL))){
{T68 se_tmp0;
r66add_position((*(se_tmp0=X334start_position((/*RF2*/(C)->_run_feature/*8*/)),&se_tmp0)));
}
r66add_position((/*RF2*/((T133*)((/*RF2*/(C)->_feature_name/*12*/)))->_start_position/*4*/));
r130fatal_error(((T0*)ms115_53215));
}
/*FI]*/
}
T2 r130static_value(T130* C){
T2 R=0;
T0* _rf=NULL;
T0* _running=NULL;
_running=(/*RF2*/((T50*)(/*SSFRF4*//*X334run_class*/r368run_class((T368*)((/*RF2*/(C)->_run_feature/*8*/)))))->_running/*9*/);
/*[IF*/
if(((_running)!=((void*)(NULL)))&&((r53count(((T53*)_running)))==(1))){
_rf=r50dynamic((T50*)(/*(IRF4.6first*/((/*RF2*/(((T53*)_running))->_storage/*0*/))[0]/*)*/),(/*RF2*/(C)->_run_feature/*8*/));
/*[IF*/
if(X334is_static(_rf)){
R=X334static_value_mem(_rf);
}
/*FI]*/
}
/*FI]*/
return R;
}
void r130run_feature_match(T130* C){
r130run_feature_has_result(C);
/*[IF*/
if((X334arguments((/*RF2*/(C)->_run_feature/*8*/)))!=((void*)(NULL))){
r66add_position((/*RF2*/((T133*)((/*RF2*/(C)->_feature_name/*12*/)))->_start_position/*4*/));
{T68 se_tmp0;
r66add_position((*(se_tmp0=X334start_position((/*RF2*/(C)->_run_feature/*8*/)),&se_tmp0)));
}
r130fatal_error(((T0*)ms132_50092));
}
/*FI]*/
}
T0* r130add_comment(T130* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r44count(((T44*)((/*RF2*/(((T81*)a1))->_list/*8*/))))/*)*/)==(0))){
R=((T0*)(C));
}
else{
{T229*n=((T229*)malloc(sizeof(*n))/*12*/);
*n=M229;
r229make(n,(T0*)C,a1);
R=((T0*)n);
}
}
/*FI]*/
return R;
}
void r130with(T130* C,T0* a1,T0* a2,T0* a3){
(/*SFN*/C->_target)=a1;
(/*SFN*/C->_feature_name)=a2;
(/*SFN*/C->_run_feature)=a3;
r130run_feature_match(C);
}
void r130mapping_c_target(T130* C,T0* a1){
T0* _actual_type=NULL;
T6 _flag=0;
_flag=r325call_invariant_start(a1);
_actual_type=X52run_type(r130result_type(C));
/*[IF*/
if(X52is_reference(_actual_type)){
/*[IF*/
if(X52is_reference(a1)){
X52mapping_cast(a1);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\50');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T130* C1=C;
r325put_cpc((T325*)(oBC13cpp),(T0*)C1);
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
else{
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T130* C1=C;
r325put_cpc((T325*)(oBC13cpp),(T0*)C1);
}/*]*/
/*]*/
}
/*FI]*/
}
else{
/*[IF*/
if(X52is_reference(a1)){
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T130* C1=C;
r325put_cpc((T325*)(oBC13cpp),(T0*)C1);
}/*]*/
/*]*/
}
else{
/*[IF*/
if(X52need_c_struct(a1)){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\46');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\50');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T130* C1=C;
r325put_cpc((T325*)(oBC13cpp),(T0*)C1);
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
else{
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T130* C1=C;
r325put_cpc((T325*)(oBC13cpp),(T0*)C1);
}/*]*/
/*]*/
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(_flag){
/*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T48* C1=(T48*)(oBC325out_c);
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
}
void r130afd_check(T130* C){
T0* _running=NULL;
T0* _rc=NULL;
/*[IF*/
if(((/*RF2*/(C)->_run_feature/*8*/))!=((void*)(NULL))){
_rc=X52run_class(X104result_type((/*RF2*/(C)->_target/*4*/)));
_running=(/*RF2*/(((T50*)_rc))->_running/*9*/);
/*[IF*/
if((_running)==((void*)(NULL))){
}
else if((r53count(((T53*)_running)))>(1)){
r351update((/*RF2*/(C)->_target/*4*/),(/*RF2*/(C)->_run_feature/*8*/));
}
/*FI]*/
}
/*FI]*/
X104afd_check((/*RF2*/(C)->_target/*4*/));
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
void r130c_declare_for_old(T130* C){
X104c_declare_for_old((/*RF2*/(C)->_target/*4*/));
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
void r130collect_c_tmp(T130* C){
/*[IF*/
if(((/*RF2*/(C)->_run_feature/*8*/))!=((void*)(NULL))){
X334collect_c_tmp((/*RF2*/(C)->_run_feature/*8*/));
}
/*FI]*/
X104collect_c_tmp((/*RF2*/(C)->_target/*4*/));
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
T6 r130use_current(T130* C){
T6 R=0;
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
if(R){
}
else if(X104is_current((/*RF2*/(C)->_target/*4*/))){
R=X334use_current((/*RF2*/(C)->_run_feature/*8*/));
}
else{
R=X104use_current((/*RF2*/(C)->_target/*4*/));
}
/*FI]*/
return R;
}
T0* r130to_runnable(T130* C,T0* a1){
T0* R=NULL;
T0* _rf=NULL;
T0* _t=NULL;
_t=r130runnable_expression((/*RF2*/(C)->_target/*4*/),a1);
_rf=r130run_feature_for(C,_t,a1);
/*[IF*/
if(((/*RF2*/(C)->_run_feature/*8*/))==((void*)(NULL))){
(/*SFN*/C->_target)=_t;
(/*SFN*/C->_run_feature)=_rf;
r130run_feature_match(C);
R=((T0*)(C));
}
else if((_t)==((void*)((/*RF2*/(C)->_target/*4*/)))){
R=((T0*)(C));
}
else{
{T130*n=((T130*)malloc(sizeof(*n))/*16*/);
*n=M130;
r130with(n,_t,(/*RF2*/(C)->_feature_name/*12*/),_rf);
R=((T0*)n);
}
}
/*FI]*/
return R;
}
T2 r130to_integer(T130* C){
T2 R=0;
T0* _rf1=NULL;
_rf1=(/*RF2*/(C)->_run_feature/*8*/);
if(NULL!=(_rf1)){
switch(((T0*)_rf1)->id){
case 388:
break;
default:
_rf1=NULL;
}
}/*[IF*/
if((_rf1)==((void*)(NULL))){
r130error(/*(IRF4.6start_position*/(/*RF2*/(((T133*)((/*RF2*/(C)->_feature_name/*12*/))))->_start_position/*4*/)/*)*/,((T0*)ms14_45441));
}
else{
R=X104to_integer((/*RF2*/(((T388*)_rf1))->_value/*28*/));
}
/*FI]*/
return R;
}
T6 r130is_static(T130* C){
T6 R=0;
T0* _rf=NULL;
T0* _running=NULL;
_running=(/*RF2*/((T50*)(/*SSFRF4*//*X334run_class*/r368run_class((T368*)((/*RF2*/(C)->_run_feature/*8*/)))))->_running/*9*/);
/*[IF*/
if(((_running)!=((void*)(NULL)))&&((r53count(((T53*)_running)))==(1))){
_rf=r50dynamic((T50*)(/*(IRF4.6first*/((/*RF2*/(((T53*)_running))->_storage/*0*/))[0]/*)*/),(/*RF2*/(C)->_run_feature/*8*/));
/*[IF*/
if(X334is_static(_rf)){
R=1;
}
/*FI]*/
}
/*FI]*/
return R;
}
void r130finalize(T130* C){
T0* _rf=NULL;
T0* _rc=NULL;
_rf=(/*RF2*/(C)->_run_feature/*8*/);
_rc=X52run_class(/*SSWARF2*//*X334current_type*/(/*RF2*/(((T368*)_rf))->_current_type/*8*/));
(/*SFN*/C->_run_feature)=r50dynamic((T50*)(/*(IRF4.6first*/((/*RF2*/((T53*)((/*RF2*/(((T50*)_rc))->_running/*9*/)))->_storage/*0*/))[0]/*)*/),_rf);
}
void r130error(T68 a1,T0* a2){
r66add_position(a1);
/*[IRF3.6append*/{T0* b1=a2;
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r66print_as_error((T66*)(oBC13eh));
}
T0* r130result_type(T130* C){
T0* R=NULL;
R=X334result_type((/*RF2*/(C)->_run_feature/*8*/));
/*[IF*/
if(X52is_like_current(R)){
R=/*SSWARF2*//*X334current_type*/(/*RF2*/((T368*)((/*RF2*/(C)->_run_feature/*8*/)))->_current_type/*8*/);
}
/*FI]*/
return R;
}
T6 r130can_be_dropped(T130* C){
T6 R=0;
/*[IF*/
if(X104can_be_dropped((/*RF2*/(C)->_target/*4*/))){
R=X334can_be_dropped((/*RF2*/(C)->_run_feature/*8*/));
}
/*FI]*/
return R;
}
T6 r130call_proc_call_stupid_switch(T130* C,T0* a1){
T6 R=0;
/*[IF*/
{/*AT*/R=1;
}
/*FI]*/
/*[IF*/
if(R){
/*[IF*/
if(X104is_current((/*RF2*/(C)->_target/*4*/))){
/*[IF*/
if(r49same_base_feature((/*RF2*/(C)->_run_feature/*8*/),a1)){
R=(X334stupid_switch((/*RF2*/(C)->_run_feature/*8*/),a1))!=((void*)(NULL));
}
else{
R=0;
}
/*FI]*/
}
else{
R=X104stupid_switch((/*RF2*/(C)->_target/*4*/),a1);
}
/*FI]*/
}
/*FI]*/
return R;
}
T0* r130run_feature_for(T130* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _bc=NULL;
T0* _rt=NULL;
T0* _rc=NULL;
_rt=X104result_type(a1);
/*[IF*/
if((_rt)!=((void*)(NULL))){
_rc=X52run_class(_rt);
/*[IF*/
if((_rc)!=((void*)(NULL))){
_bc=r50base_class(((T50*)_rc));
R=r51run_feature_for(((T51*)_bc),_rc,a1,(/*RF2*/(C)->_feature_name/*12*/),a2);
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((R)==((void*)(NULL))){
r66add_position((/*RF2*/((T133*)((/*RF2*/(C)->_feature_name/*12*/)))->_start_position/*4*/));
/*[IRF3.6append*/{T0* b1=((T0*)ms116_39025);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r66print_as_fatal_error((T66*)(oBC13eh));
}
/*FI]*/
return R;
}
T0* r130static_result_base_class(T130* C){
T0* R=NULL;
T0* _cn=NULL;
T0* _rt=NULL;
T0* _e_feature=NULL;
T0* _bc=NULL;
_bc=X104static_result_base_class((/*RF2*/(C)->_target/*4*/));
/*[IF*/
if((_bc)!=((void*)(NULL))){
_e_feature=r51e_feature(((T51*)_bc),(/*RF2*/(C)->_feature_name/*12*/));
/*[IF*/
if((_e_feature)!=((void*)(NULL))){
_rt=X90result_type(_e_feature);
/*[IF*/
if((_rt)!=((void*)(NULL))){
_cn=X52static_base_class_name(_rt);
/*[IF*/
if((_cn)!=((void*)(NULL))){
R=r61base_class(((T61*)_cn));
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
return R;
}
void r130make(T130* C,T0* a1,T0* a2){
(/*SFN*/C->_target)=a1;
(/*SFN*/C->_feature_name)=a2;
}
void r130fatal_error(T0* a1){
/*[IRF3.6append*/{T0* b1=a1;
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r66print_as_fatal_error((T66*)(oBC13eh));
}
void r130assertion_check(T130* C,T3 a1){
/*[IF*/
if((a1)==(((T3)'R'))){
X334vape_check_from((/*RF2*/(C)->_run_feature/*8*/),/*(IRF4.6start_position*/(/*RF2*/(((T133*)((/*RF2*/(C)->_feature_name/*12*/))))->_start_position/*4*/)/*)*/);
}
/*FI]*/
X104assertion_check((/*RF2*/(C)->_target/*4*/),a1);
}
T6 r130stupid_switch(T130* C,T0* a1){
T6 R=0;
R=r130call_proc_call_stupid_switch(C,a1);
/*[IF*/
if(R){
R=!(X52is_native_array(r130result_type(C)));
}
/*FI]*/
return R;
}
void r262gc_na_env_in(T262* C,T0* a1){
r7append(((T7*)a1),((T0*)ms262_7326));
r2append_in(r262id(C),a1);
}
void r262standard_c_print_function(T262* C){
/*[IF*/
if(r47no_check((T47*)(oBC13run_control))){
r50c_print_function((T50*)(r262run_class(C)));
}
/*FI]*/
}
T2 r262id(T262* C){
T2 R=0;
R=(/*RF2*/((T50*)(r262run_class(C)))->_id/*4*/);
return R;
}
void r262cast_to_ref(T262* C){
r262cast_to_ref((T262*)((/*RF2*/(C)->_run_type/*16*/)));
}
void r262just_before_gc_mark_in(T262* C,T0* a1){
r7append(((T7*)a1),((T0*)ms262_741));
r262gc_na_env_in(C,a1);
r7append(((T7*)a1),((T0*)ms262_10592));
r262gc_na_env_in(C,a1);
r7append(((T7*)a1),((T0*)ms262_34440));
r262gc_na_env_in(C,a1);
r7append(((T7*)a1),((T0*)ms262_8216));
r262gc_na_env_in(C,a1);
r7append(((T7*)a1),((T0*)ms262_32264));
r262gc_na_env_in(C,a1);
r7append(((T7*)a1),((T0*)ms262_11424));
r262gc_na_env_in(C,a1);
r7append(((T7*)a1),((T0*)ms262_11808));
r262gc_na_env_in(C,a1);
r7append(((T7*)a1),((T0*)ms262_13148));
}
void r262gc_call_new_in(T262* C,T0* a1){
r7append(((T7*)a1),((T0*)ms14_990));
r2append_in(r262id(C),a1);
r7extend(((T7*)a1),((T3)'\50'));
r7extend(((T7*)a1),((T3)'\51'));
}
T0* r262base_class(T262* C){
T0* R=NULL;
T0* _bcn=NULL;
_bcn=(/*RF2*/(C)->_base_class_name/*4*/);
/*[IF*/
if((_bcn)!=((void*)(NULL))){
R=r61base_class(((T61*)_bcn));
}
else{
/*[IRF3.6append*/{T0* b1=((T0*)ms52_36693);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r66add_type((T0*)C,((T0*)ms14_46));
r66print_as_fatal_error((T66*)(oBC13eh));
}
/*FI]*/
return R;
}
T0* r262look_up_for(T262* C,T0* a1,T0* a2){
T0* R=NULL;
R=r51look_up_for((T51*)(r262base_class(C)),a1,a2);
return R;
}
void r262mapping_cast(T262* C){
/*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms52_15456)))))->_count)=(0);
/*]*/
r7extend((T7*)(((T0*)ms52_15456)),((T3)'\50'));
/*[IRF3.6c_type_for_target_in*/{T262* C1=C;
T0* b1=((T0*)ms52_15456);
r262c_type_for_argument_in(C1,b1);
}/*]*/
r7extend((T7*)(((T0*)ms52_15456)),((T3)'\51'));
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms52_15456));
/*]*/
}
T0* r262actual_reference(T0* a1){
T0* R=NULL;
return R;
}
T6 r262is_a_in(T262* C,T0* a1,T0* a2){
T6 R=0;
T0* _ct=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
/*[IF*/
if(((/*RF2*/(C)->_written_mark/*12*/))==((void*)(X52written_mark(a1)))){
R=1;
}
else{
_ct=(/*RF2*/(((T50*)a2))->_current_type/*0*/);
_t1=r262to_runnable(C,_ct);
_t2=X52to_runnable(a1,_ct);
/*[IF*/
if((X52run_time_mark(_t1))==((void*)(X52run_time_mark(_t2)))){
R=1;
}
else{
R=X52is_a(_t1,_t2);
}
/*FI]*/
}
/*FI]*/
return R;
}
T6 r262is_native_array(T262* C){
T6 R=0;
T0* _tna=NULL;
_tna=((void*)C);
R=(_tna)!=((void*)(NULL));
return R;
}
T6 r262is_a(T262* C,T0* a1){
T6 R=0;
R=(r262run_time_mark(C))==((void*)(X52run_time_mark(a1)));
/*[IF*/
if(!(R)){
r66add_type((T0*)C,((T0*)ms14_17460));
r66add_type(a1,((T0*)ms14_46));
}
/*FI]*/
return R;
}
void r262make(T262* C,T68 a1,T0* a2){
{T61*n=((T61*)malloc(sizeof(*n))/*12*/);
*n=M61;
r61make(n,((T0*)ms15_17448),a1);
(/*SFN*/C->_base_class_name)=((T0*)n);
}
{T258*n=((T258*)malloc(sizeof(*n))/*16*/);
*n=M258;
r258make(n,1,1);
(/*SFN*/C->_generic_list)=((T0*)n);
}
/*[IRF3.6put*/{T258* C1=(T258*)((/*RF2*/(C)->_generic_list/*8*/));
T0* b1=a2;
T2 b2=1;
((/*RF2*/(C1)->_storage/*0*/))[(b2)-((/*RF2*/(C1)->_lower/*12*/))]=(b1);
}/*]*/
r7copy((T7*)(((T0*)ms52_783104)),((T0*)ms15_17448));
r7extend((T7*)(((T0*)ms52_783104)),((T3)'\133'));
r7append((T7*)(((T0*)ms52_783104)),X52written_mark(a2));
r7extend((T7*)(((T0*)ms52_783104)),((T3)'\135'));
(/*SFN*/C->_written_mark)=((/*UT*/(void)((T21*)(r262string_aliaser()))),r21item(((T0*)ms52_783104)));
}
T2 r262c_sizeof_pointer(void){
T2 R=0;
T8 _p=NULL;
R=sizeof(T8);
return R;
}
void r262load_basic_features(T262* C){
T0* _rc=NULL;
T0* _rf=NULL;
T0* _et=NULL;
_rc=r262run_class(C);
r50set_at_run_time(((T50*)_rc));
_et=/*(IRF4.6elements_type*//*(IRF4.6first*/((/*RF2*/(((T258*)((/*RF2*/(C)->_generic_list/*8*/))))->_storage/*0*/))[0]/*)*//*)*/;
/*[IF*/
if(X52is_expanded(_et)){
r50set_at_run_time((T50*)(X52run_class(_et)));
}
/*FI]*/
_rf=r50get_feature_with(((T50*)_rc),((T0*)ms15_1724));
_rf=r50get_feature_with(((T50*)_rc),((T0*)ms15_1035));
/*[IF*/
if((X52expanded_initializer(_et))!=((void*)(NULL))){
_rf=r50get_feature_with(((T50*)_rc),((T0*)ms15_13419));
}
/*FI]*/
}
T6 r262is_run_type(T262* C){
T6 R=0;
T0* _et=NULL;
/*[IF*/
if(((/*RF2*/(C)->_run_type/*16*/))!=((void*)(NULL))){
R=1;
}
else{
_et=/*(IRF4.6elements_type*//*(IRF4.6first*/((/*RF2*/(((T258*)((/*RF2*/(C)->_generic_list/*8*/))))->_storage/*0*/))[0]/*)*//*)*/;
/*[IF*/
if((X52is_run_type(_et))&&((X52run_type(_et))==((void*)(_et)))){
(/*SFN*/C->_run_type)=((T0*)(C));
r262load_basic_features(C);
R=1;
}
/*FI]*/
}
/*FI]*/
return R;
}
T0* r262type_any(void){
if(fBC13type_any==0){fBC13type_any=1;{
T68 _unknown_position={NULL,0};
{T259*n=((T259*)malloc(sizeof(*n))/*8*/);
*n=M259;
oBC13type_any=((T0*)n);
r259make(n,_unknown_position);
}
}}
return oBC13type_any;
}
T0* r262smallest_ancestor(T262* C,T0* a1){
T0* R=NULL;
T0* _rto=NULL;
_rto=X52run_type(a1);
/*[IF*/
if(X52is_a(_rto,(/*RF2*/(C)->_run_type/*16*/))){
R=_rto;
}
else if(r262is_a((T262*)((/*RF2*/(C)->_run_type/*16*/)),_rto)){
R=(/*RF2*/(C)->_run_type/*16*/);
}
else{
R=r262type_any();
}
/*FI]*/
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC66explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T67*)((T67*)(oBC66positions))))->_upper)=(-(1));
/*]*/
/*]*/
return R;
}
void r262c_header_pass2(T262* C){
T0* _et=NULL;
r50c_header_pass2((T50*)(X52run_class(/*(IRF4.6first*/((/*RF2*/((T258*)((/*RF2*/(C)->_generic_list/*8*/)))->_storage/*0*/))[0]/*)*/)));
_et=X52run_type(/*(IRF4.6elements_type*//*(IRF4.6first*/((/*RF2*/(((T258*)((/*RF2*/(C)->_generic_list/*8*/))))->_storage/*0*/))[0]/*)*//*)*/);
r7copy((T7*)(((T0*)ms52_783104)),((T0*)ms14_6448));
r262c_type_in(C,((T0*)ms52_783104));
r7extend((T7*)(((T0*)ms52_783104)),((T3)'T'));
r2append_in(r262id(C),((T0*)ms52_783104));
r7append((T7*)(((T0*)ms52_783104)),((T0*)ms14_138));
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms52_783104));
/*]*/
}
T0* r262string_aliaser(void){
if(fBC13string_aliaser==0){fBC13string_aliaser=1;{
{T21*n=((T21*)malloc(1));
oBC13string_aliaser=((T0*)n);
/*[IRF3.2make*//*[IRF3.6add1*/{T0* b1=((T0*)ms15_696);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_1915);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_669);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_1980);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_9234);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_6405);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_12529);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_9801);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_16393);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_12550);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_4728);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_10740);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_12030);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_14817);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_6307);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_6643);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_12595);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_5508);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_17448);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_1216);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_7928);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_6776);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_12804);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_1168);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_7576);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_4956);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_16692);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_19124);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_921);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_10680);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_64);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_368);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_61);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_246);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_62);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_9408);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_242);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_60);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_45);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_42);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_216);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_1011);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_450);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_8211);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_43);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_94);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_552);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_564);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_47);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_188);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_35);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_1035a);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_11424);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_2600);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
r21add2(((T0*)ms15_22524));
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_6702);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_11776);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
r21add2(((T0*)ms15_29246));
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_13419);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_2765a);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_1644);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_19294);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_1772);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_15070);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_15570);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_27034);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_15190);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_15890);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_19151);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_13491);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_28490);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_8750);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_19437);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_22824a);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_23829);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_27272);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_10528);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_13707);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_6846);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_1664);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_2760);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_2730a);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_22248);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_22788);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_30660);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_13995);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_432);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
r21add2(((T0*)ms15_22596));
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_60104);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_24960);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_34432);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_11144);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_18964);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_1724);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_1744);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_2765);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_6762);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_1656);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
r21add2(((T0*)ms15_60016));
r21add2(((T0*)ms15_26880));
r21add2(((T0*)ms15_33240));
r21add2(((T0*)ms15_21624));
r21add2(((T0*)ms15_60060));
r21add2(((T0*)ms15_26908));
r21add2(((T0*)ms15_33270));
r21add2(((T0*)ms15_21648));
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_17886);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_22824);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_21192);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_2785);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_11496);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_53940);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_1035);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_2440);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_2445);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_32730);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_12744);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_13662);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_8547);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_8505);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_9436);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_14193);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_12915a);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_12915);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_34528);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_13752);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_11336);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_26156);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_11376);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_27580);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_33990);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_27443);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_40358);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_25584);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_7380);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_2730);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_7530);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_13977);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_14175);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_16970);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_8820);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_7326);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_22716);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_12978);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_16770);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_16850);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_9051);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_21300);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_56720);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_1800);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_2780);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_27456);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_15650);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_9275);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_58075);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_22140);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_13833);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_7314);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_1608);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*]*/
}
}}
return oBC13string_aliaser;
}
T0* r262to_runnable(T262* C,T0* a1){
T0* R=NULL;
T0* _rt=NULL;
T0* _et2=NULL;
T0* _et1=NULL;
_et1=/*(IRF4.6elements_type*//*(IRF4.6first*/((/*RF2*/(((T258*)((/*RF2*/(C)->_generic_list/*8*/))))->_storage/*0*/))[0]/*)*//*)*/;
_et2=X52to_runnable(_et1,a1);
/*[IF*/
if((_et2)==((void*)(NULL))){
/*[IF*/
if((_et2)!=((void*)(NULL))){
{T68 se_tmp0;
r66add_position((*(se_tmp0=X52start_position(_et2),&se_tmp0)));
}
}
/*FI]*/
{T68 se_tmp0;
r66add_position((*(se_tmp0=X52start_position(_et1),&se_tmp0)));
}
r262fatal_error(((T0*)ms14_28644));
}
/*FI]*/
_et2=X52run_type(_et2);
/*[IF*/
if(((/*RF2*/(C)->_run_type/*16*/))==((void*)(NULL))){
R=((T0*)(C));
/*[IF*/
if((_et2)==((void*)(_et1))){
(/*SFN*/C->_run_type)=((T0*)(C));
r262load_basic_features(C);
}
else{
{T262*n=((T262*)malloc(sizeof(*n))/*20*/);
*n=M262;
r262make_runnable(n,/*(IRF4.6start_position*/(/*RF2*/(((T61*)((/*RF2*/(C)->_base_class_name/*4*/))))->_start_position/*0*/)/*)*/,_et2);
(/*SFN*/C->_run_type)=((T0*)n);
}
r262load_basic_features((T262*)((/*RF2*/(C)->_run_type/*16*/)));
}
/*FI]*/
}
else if((_et2)==((void*)(_et1))){
R=((T0*)(C));
}
else{
R=r262twin(C);
{T262*n=((T262*)malloc(sizeof(*n))/*20*/);
*n=M262;
r262make_runnable(n,/*(IRF4.6start_position*/(/*RF2*/(((T61*)((/*RF2*/(C)->_base_class_name/*4*/))))->_start_position/*0*/)/*)*/,_et2);
_rt=((T0*)n);
}
/*[IRF3.3set_run_type*/((((T262*)(((T262*)R))))->_run_type)=(_rt);
/*]*/
r262load_basic_features(((T262*)_rt));
}
/*FI]*/
return R;
}
void r262make_runnable(T262* C,T68 a1,T0* a2){
r262make(C,a1,a2);
(/*SFN*/C->_run_type)=((T0*)(C));
}
T0* r262twin(T262* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T262*)R)=*C;
return R;
}
void r262id_extra_information(T0* a1){
r48put_string(((T48*)a1),((T0*)ms52_9724));
/*[IF*/
/*AF*//*AE*/
r48put_string(((T48*)a1),((T0*)ms52_759));
/*FI]*/
}
void r262gc_define1(T262* C){
T2 _rcid=0;
T0* _rc=NULL;
_rc=r262run_class(C);
_rcid=(/*RF2*/(((T50*)_rc))->_id/*4*/);
r7copy((T7*)(((T0*)ms52_783104a)),((T0*)ms262_5159));
r262gc_na_env_in(C,((T0*)ms52_783104a));
r7copy((T7*)(((T0*)ms52_3073536)),((T0*)ms262_54080));
r262gc_mark_in(C,((T0*)ms52_3073536));
r7extend((T7*)(((T0*)ms52_3073536)),((T3)'\175'));
r325put_extern5((T325*)(oBC13cpp),((T0*)ms52_783104a),((T0*)ms52_3073536));
/*[IF*/
if((/*RF2*/((T344*)(oBC13gc_handler))->_info_flag/*1*/)){
r7copy((T7*)(((T0*)ms52_783104a)),((T0*)ms14_993));
r7extend((T7*)(((T0*)ms52_783104a)),((T3)'\40'));
r262gc_info_nb_in(C,((T0*)ms52_783104a));
r325put_extern2((T325*)(oBC13cpp),((T0*)ms52_783104a),((T3)'0'));
}
/*FI]*/
}
void r262gc_mark_in(T262* C,T0* a1){
r7append(((T7*)a1),((T0*)ms14_8764));
r2append_in(r262id(C),a1);
}
void r262gc_info_nb_in(T262* C,T0* a1){
r7append(((T7*)a1),((T0*)ms52_14920));
r2append_in(r262id(C),a1);
}
void r262c_type_for_external_in(T262* C,T0* a1){
/*[IF*/
/*AF*//*AE*/
/*[IRF3.6c_type_for_result_in*/{T262* C1=C;
T0* b1=a1;
r262c_type_for_argument_in(C1,b1);
}/*]*/
/*FI]*/
}
void r262c_type_for_argument_in(T262* C,T0* a1){
r7extend(((T7*)a1),((T3)'T'));
r2append_in(r262id(C),a1);
}
T0* r262run_time_mark(T262* C){
T0* R=NULL;
/*[IF*/
if(r262is_run_type(C)){
R=(/*RF2*/((T262*)((/*RF2*/(C)->_run_type/*16*/)))->_written_mark/*12*/);
}
/*FI]*/
return R;
}
T0* r262run_class(T262* C){
T0* R=NULL;
/*[IF*/
if(r262is_run_type(C)){
R=r49run_class((/*RF2*/(C)->_run_type/*16*/));
}
/*FI]*/
return R;
}
void r262fatal_error(T0* a1){
/*[IRF3.6append*/{T0* b1=a1;
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r66print_as_fatal_error((T66*)(oBC13eh));
}
void r262gc_mark(T262* C,T6 a1){
T0* _et_rc=NULL;
T0* _et=NULL;
_et=/*(IRF4.6elements_type*//*(IRF4.6first*/((/*RF2*/(((T258*)((/*RF2*/(C)->_generic_list/*8*/))))->_storage/*0*/))[0]/*)*//*)*/;
_et_rc=X52run_class(_et);
/*[IF*/
if(X52need_gc_mark_function(_et)){
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms262_14616));
/*[IF*/
if(!(a1)){
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms262_35303));
}
/*FI]*/
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms262_25704));
r7extend((T7*)(((T0*)ms52_3073536)),((T3)'\173'));
r262c_type_in(C,((T0*)ms52_3073536));
r7remove_last((T7*)(((T0*)ms52_3073536)),1);
r7extend((T7*)(((T0*)ms52_3073536)),((T3)'\40'));
r7extend((T7*)(((T0*)ms52_3073536)),((T3)'e'));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms14_138));
r262c_type_in(C,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms262_146744));
r344mark_for(((T0*)ms52_3073536),((T0*)ms262_101),_et_rc);
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms262_1400));
/*[IF*/
if(!(a1)){
r7extend((T7*)(((T0*)ms52_3073536)),((T3)'\175'));
}
/*FI]*/
}
else{
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms262_38493));
}
/*FI]*/
}
T6 r262stupid_switch(T262* C,T0* a1){
T6 R=0;
R=X52stupid_switch(/*(IRF4.6first*/((/*RF2*/((T258*)((/*RF2*/(C)->_generic_list/*8*/)))->_storage/*0*/))[0]/*)*/,a1);
return R;
}
void r262demangling_in(T262* C,T0* a1){
/*[IF*/
/*AF*//*AE*/
r7extend(((T7*)a1),((T3)'E'));
/*FI]*/
r7extend(((T7*)a1),((T3)'\40'));
r7append(((T7*)a1),r262run_time_mark(C));
}
void r262c_type_in(T262* C,T0* a1){
T0* _et=NULL;
_et=/*(IRF4.6elements_type*//*(IRF4.6first*/((/*RF2*/(((T258*)((/*RF2*/(C)->_generic_list/*8*/))))->_storage/*0*/))[0]/*)*//*)*/;
r7extend(((T7*)a1),((T3)'T'));
/*[IF*/
if(X52is_reference(_et)){
r7extend(((T7*)a1),((T3)'0'));
r7extend(((T7*)a1),((T3)'\52'));
}
else{
r2append_in(X52id(_et),a1);
}
/*FI]*/
r7extend(((T7*)a1),((T3)'\52'));
}
void r262c_frame_descriptor(T262* C){
r7extend((T7*)(oBC13c_frame_descriptor_format),((T3)'\45'));
/*[IF*/
/*AF*//*AE*/
r7extend((T7*)(oBC13c_frame_descriptor_format),((T3)'E'));
/*FI]*/
r2append_in(r262id(C),oBC13c_frame_descriptor_format);
r7extend((T7*)(oBC13c_frame_descriptor_format),((T3)'\45'));
}
void r262gc_info_in(T262* C,T0* a1){
r7append(((T7*)a1),((T0*)ms262_22591));
r7append(((T7*)a1),r262run_time_mark(C));
r7append(((T7*)a1),((T0*)ms14_5895));
r262gc_info_nb_in(C,a1);
r7append(((T7*)a1),((T0*)ms14_330));
}
void r262gc_define2(T262* C){
T2 _rcid=0;
T0* _et_rc=NULL;
T0* _et=NULL;
_et=/*(IRF4.6elements_type*//*(IRF4.6first*/((/*RF2*/(((T258*)((/*RF2*/(C)->_generic_list/*8*/))))->_storage/*0*/))[0]/*)*//*)*/;
_et_rc=X52run_class(_et);
_rcid=(/*RF2*/((T50*)(r262run_class(C)))->_id/*4*/);
r7copy((T7*)(((T0*)ms52_783104a)),((T0*)ms14_1736a));
r7extend((T7*)(((T0*)ms52_783104a)),((T3)'\40'));
r262gc_mark_in(C,((T0*)ms52_783104a));
r7append((T7*)(((T0*)ms52_783104a)),((T0*)ms262_248));
r2append_in(_rcid,((T0*)ms52_783104a));
r7append((T7*)(((T0*)ms52_783104a)),((T0*)ms262_552));
/*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms52_3073536)))))->_count)=(0);
/*]*/
r262gc_mark(C,0);
r325put_c_function((T325*)(oBC13cpp),((T0*)ms52_783104a),((T0*)ms52_3073536));
/*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms52_783104a)))))->_count)=(0);
/*]*/
r7extend((T7*)(((T0*)ms52_783104a)),((T3)'T'));
r2append_in(_rcid,((T0*)ms52_783104a));
r7extend((T7*)(((T0*)ms52_783104a)),((T3)'\40'));
r7append((T7*)(((T0*)ms52_783104a)),((T0*)ms14_990));
r2append_in(_rcid,((T0*)ms52_783104a));
r7append((T7*)(((T0*)ms52_783104a)),((T0*)ms262_8130));
/*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms52_3073536)))))->_count)=(0);
/*]*/
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms262_22032));
X52c_type_for_result_in(_et,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms262_114205));
/*[IF*/
if((/*RF2*/((T344*)(oBC13gc_handler))->_info_flag/*1*/)){
r262gc_info_nb_in(C,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms262_620));
}
/*FI]*/
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms262_9174));
r262gc_na_env_in(C,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms262_40568));
r262gc_na_env_in(C,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms262_4656));
r262gc_na_env_in(C,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms262_30404));
r262gc_na_env_in(C,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms262_47136));
r262gc_na_env_in(C,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms262_37550));
r262gc_na_env_in(C,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms262_114080));
r262gc_na_env_in(C,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms262_8216a));
r262gc_na_env_in(C,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms262_1208610));
r2append_in(_rcid,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms262_39340));
r2append_in(_rcid,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms262_7272));
r262gc_na_env_in(C,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms262_5193));
r325put_c_function((T325*)(oBC13cpp),((T0*)ms52_783104a),((T0*)ms52_3073536));
}
T0* r145c_variable_name(T145* C){
T0* R=NULL;
T0* _bf=NULL;
_bf=/*SSWA2*//*X334base_feature*/(/*RF2*/((T368*)((/*RF2*/(C)->_run_feature/*12*/)))->_base_feature/*24*/);
R=r363o_result(_bf);
return R;
}
T0* r145add_comment(T145* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r44count(((T44*)((/*RF2*/(((T81*)a1))->_list/*8*/))))/*)*/)==(0))){
R=((T0*)(C));
}
else{
{T229*n=((T229*)malloc(sizeof(*n))/*12*/);
*n=M229;
r229make(n,(T0*)C,a1);
R=((T0*)n);
}
}
/*FI]*/
return R;
}
void r145mapping_c_target(T145* C,T0* a1){
T0* _rt=NULL;
T6 _flag=0;
_flag=r325call_invariant_start(a1);
_rt=X52run_type(r145result_type(C));
/*[IF*/
if(X52is_reference(_rt)){
/*[IF*/
if(X52is_reference(a1)){
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms14_492));
/*]*/
/*[IRF3.5put_integer*/r48put_integer(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),X52id(a1));
/*]*/
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms14_166));
/*]*/
/*[IRF3.6compile_to_c*/{T145* C1=C;
/*[IRF3.6c_put_o_result*/{T0* c1=(/*RF2*/(C1)->_run_feature/*12*/);
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),r363o_result(/*SSWA2*//*X334base_feature*/(/*RF2*/(((T368*)c1))->_base_feature/*24*/)));
/*]*/
}/*]*/
}/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
else{
/*[IRF3.6compile_to_c*/{T145* C1=C;
/*[IRF3.6c_put_o_result*/{T0* c1=(/*RF2*/(C1)->_run_feature/*12*/);
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),r363o_result(/*SSWA2*//*X334base_feature*/(/*RF2*/(((T368*)c1))->_base_feature/*24*/)));
/*]*/
}/*]*/
}/*]*/
}
/*FI]*/
}
else{
/*[IF*/
if(X52is_reference(a1)){
/*[IRF3.6compile_to_c*/{T145* C1=C;
/*[IRF3.6c_put_o_result*/{T0* c1=(/*RF2*/(C1)->_run_feature/*12*/);
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),r363o_result(/*SSWA2*//*X334base_feature*/(/*RF2*/(((T368*)c1))->_base_feature/*24*/)));
/*]*/
}/*]*/
}/*]*/
}
else{
/*[IF*/
if(X52need_c_struct(_rt)){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\46');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
/*[IRF3.6compile_to_c*/{T145* C1=C;
/*[IRF3.6c_put_o_result*/{T0* c1=(/*RF2*/(C1)->_run_feature/*12*/);
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),r363o_result(/*SSWA2*//*X334base_feature*/(/*RF2*/(((T368*)c1))->_base_feature/*24*/)));
/*]*/
}/*]*/
}/*]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(_flag){
/*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T48* C1=(T48*)(oBC325out_c);
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
}
T0* r145to_runnable(T145* C,T0* a1){
T0* R=NULL;
T0* _rt2=NULL;
T0* _rt1=NULL;
T0* _rf=NULL;
R=((T0*)(C));
_rf=r49top_rf((T49*)(oBC13small_eiffel));
/*[IF*/
if(((/*RF2*/(C)->_run_feature/*12*/))==((void*)(NULL))){
(/*SFN*/C->_run_feature)=_rf;
}
else{
_rt1=X52run_type(X334result_type(_rf));
_rt2=X52run_type(X334result_type((/*RF2*/(C)->_run_feature/*12*/)));
/*[IF*/
if((X52run_time_mark(_rt1))!=((void*)(X52run_time_mark(_rt2)))){
{T68 se_tmp0;
r66add_position((*(se_tmp0=X52start_position(_rt1),&se_tmp0)));
}
{T68 se_tmp0;
r66add_position((*(se_tmp0=X52start_position(_rt2),&se_tmp0)));
}
X334fe_vffd7((/*RF2*/(C)->_run_feature/*12*/));
}
/*FI]*/
}
/*FI]*/
return R;
}
T2 r145to_integer(T145* C){
T2 R=0;
r145error((/*RF2*/(C)->_start_position/*4*/),((T0*)ms14_45441));
return R;
}
void r145error(T68 a1,T0* a2){
r66add_position(a1);
/*[IRF3.6append*/{T0* b1=a2;
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r66print_as_error((T66*)(oBC13eh));
}
T0* r145result_type(T145* C){
T0* R=NULL;
R=X334result_type((/*RF2*/(C)->_run_feature/*12*/));
return R;
}
T0* r145static_result_base_class(void){
T0* R=NULL;
T0* _bcn=NULL;
T0* _rt=NULL;
T0* _e_feature=NULL;
T0* _rf=NULL;
_rf=r49top_rf((T49*)(oBC13small_eiffel));
_e_feature=/*SSWA2*//*X334base_feature*/(/*RF2*/(((T368*)_rf))->_base_feature/*24*/);
_rt=X90result_type(_e_feature);
_bcn=X52static_base_class_name(_rt);
/*[IF*/
if((_bcn)!=((void*)(NULL))){
R=r61base_class(((T61*)_bcn));
}
/*FI]*/
return R;
}
T6 r145stupid_switch(T145* C,T0* a1){
T6 R=0;
/*[IF*/
if(r49stupid_switch(r145result_type(C),a1)){
R=1;
}
/*FI]*/
return R;
}
void r145mapping_c_arg(T145* C,T0* a1){
T0* _rt=NULL;
_rt=X52run_type(r145result_type(C));
/*[IF*/
if(X52is_reference(_rt)){
/*[IF*/
if(X52is_reference(a1)){
/*[IRF3.6compile_to_c*/{T145* C1=C;
/*[IRF3.6c_put_o_result*/{T0* c1=(/*RF2*/(C1)->_run_feature/*12*/);
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),r363o_result(/*SSWA2*//*X334base_feature*/(/*RF2*/(((T368*)c1))->_base_feature/*24*/)));
/*]*/
}/*]*/
}/*]*/
}
else{
/*[IRF3.6compile_to_c*/{T145* C1=C;
/*[IRF3.6c_put_o_result*/{T0* c1=(/*RF2*/(C1)->_run_feature/*12*/);
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),r363o_result(/*SSWA2*//*X334base_feature*/(/*RF2*/(((T368*)c1))->_base_feature/*24*/)));
/*]*/
}/*]*/
}/*]*/
}
/*FI]*/
}
else{
/*[IF*/
if(X52is_reference(a1)){
/*[IRF3.6compile_to_c*/{T145* C1=C;
/*[IRF3.6c_put_o_result*/{T0* c1=(/*RF2*/(C1)->_run_feature/*12*/);
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),r363o_result(/*SSWA2*//*X334base_feature*/(/*RF2*/(((T368*)c1))->_base_feature/*24*/)));
/*]*/
}/*]*/
}/*]*/
}
else{
/*[IF*/
if(X52need_c_struct(_rt)){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\46');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
/*[IRF3.6compile_to_c*/{T145* C1=C;
/*[IRF3.6c_put_o_result*/{T0* c1=(/*RF2*/(C1)->_run_feature/*12*/);
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),r363o_result(/*SSWA2*//*X334base_feature*/(/*RF2*/(((T368*)c1))->_base_feature/*24*/)));
/*]*/
}/*]*/
}/*]*/
}
/*FI]*/
}
/*FI]*/
}
void r321add_last(T321* C,T0* a1){
/*[IF*/
if(((/*RF2*/(C)->_list/*4*/))==((void*)(NULL))){
{T141*n=((T141*)malloc(sizeof(*n))/*16*/);
*n=M141;
r141with_capacity(n,4);
(/*SFN*/C->_list)=((T0*)n);
}
}
/*FI]*/
X141add_last((/*RF2*/(C)->_list/*4*/),a1);
}
T2 r395id(T395* C){
T2 R=0;
R=X52id((/*RF2*/(C)->_current_type/*8*/));
return R;
}
void r395address_of_c_mapping_wrapper(T395* C){
/*[IRF3.3clear*/((((T7*)((T7*)(oBC334c_code))))->_count)=(0);
/*]*/
r395address_of_wrapper_name_in(C,oBC334c_code);
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),oBC334c_code);
/*]*/
}
void r395fall_down(T395* C){
T0* _rf=NULL;
T0* _sub_name=NULL;
T0* _sub_bc=NULL;
T0* _current_bc=NULL;
T0* _sub_rc=NULL;
T0* _current_rc=NULL;
T2 _i=0;
T0* _running=NULL;
_current_rc=X52run_class((/*RF2*/(C)->_current_type/*8*/));
_running=(/*RF2*/(((T50*)_current_rc))->_running/*9*/);
/*[IF*/
if((_running)!=((void*)(NULL))){
_current_bc=X52base_class((/*RF2*/(C)->_current_type/*8*/));
_i=(/*RF2*/(((T53*)_running))->_lower/*12*/);
while (!((_i)>((/*RF2*/(((T53*)_running))->_upper/*8*/))))
{
_sub_rc=r53item(((T53*)_running),_i);
/*[IF*/
if((_sub_rc)!=((void*)(_current_rc))){
_sub_bc=X52base_class((/*RF2*/(((T50*)_sub_rc))->_current_type/*0*/));
_sub_name=r51new_name_of(((T51*)_sub_bc),_current_bc,(/*RF2*/(C)->_name/*12*/));
_rf=r50get_feature(((T50*)_sub_rc),_sub_name);
}
/*FI]*/
_i=(_i)+(1);
}
}
/*FI]*/
}
void r395c_define(T395* C){
r363c_define_o_result((T0*)C);
/*[IF*/
if(!(r395is_pre_computable(C))){
r363c_define_o_flag((T0*)C);
r395define_prototype(C);
r363c_test_o_flag((T0*)C);
r395c_define_opening(C);
/*[IF*/
if(((/*RF2*/(C)->_routine_body/*44*/))!=((void*)(NULL))){
r215compile_to_c((T215*)((/*RF2*/(C)->_routine_body/*44*/)));
}
/*FI]*/
r395c_define_closing(C);
r363c_return_o_result((T0*)C);
r395c_frame_descriptor(C);
}
/*FI]*/
}
T0* r395clients(T395* C){
T0* R=NULL;
T0* _bfbc=NULL;
T0* _bc=NULL;
/*[IF*/
if(((/*RF2*/(C)->_clients_memory/*4*/))==((void*)(NULL))){
_bc=X52base_class((/*RF2*/(C)->_current_type/*8*/));
_bfbc=(/*RF2*/((T307*)((/*RF2*/(C)->_base_feature/*24*/)))->_base_class/*4*/);
/*[IF*/
if((_bc)==((void*)(_bfbc))){
R=(/*RF2*/((T307*)((/*RF2*/(C)->_base_feature/*24*/)))->_clients/*16*/);
}
else{
R=r51clients_for(((T51*)_bc),(/*RF2*/(C)->_name/*12*/));
}
/*FI]*/
(/*SFN*/C->_clients_memory)=R;
}
else{
R=(/*RF2*/(C)->_clients_memory/*4*/);
}
/*FI]*/
return R;
}
void r395put_c_name_tag(T395* C){
T0* _fn=NULL;
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\42');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
_fn=/*(IRF4.6first_name*/(/*RF2*/(((T83*)((/*RF2*/((T307*)((/*RF2*/(C)->_base_feature/*24*/)))->_names/*8*/))))->_first/*0*/)/*)*/;
/*[IF*/
if((X82to_key(_fn))!=((void*)(X82to_key((/*RF2*/(C)->_name/*12*/))))){
X82put_cpp_tag((/*RF2*/(C)->_name/*12*/));
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),X82to_string((/*RF2*/(C)->_name/*12*/)));
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\40');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\50');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
X82put_cpp_tag(_fn);
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),X82to_string(_fn));
/*]*/
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms334_1108));
/*]*/
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),(/*RF2*/((T61*)(/*(IRF4.6base_class_name*/(/*RF2*/(((T51*)((/*RF2*/((T307*)((/*RF2*/(C)->_base_feature/*24*/)))->_base_class/*4*/))))->_name/*18*/)/*)*/))->_to_string/*8*/));
/*]*/
/*[IF*/
if((X82to_key(_fn))!=((void*)(X82to_key((/*RF2*/(C)->_name/*12*/))))){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\42');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
void r395std_compute_use_current(T395* C){
/*[IF*/
if(((/*RF2*/(C)->_use_current_state/*16*/))==(24)){
/*[IF*/
if(((/*RF2*/(C)->_require_assertion/*36*/))!=((void*)(NULL))){
/*[IF*/
if(r376use_current((T376*)((/*RF2*/(C)->_require_assertion/*36*/)))){
(/*SFN*/C->_use_current_state)=22;
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_use_current_state/*16*/))==(24)){
/*[IF*/
if(((/*RF2*/(C)->_routine_body/*44*/))!=((void*)(NULL))){
/*[IF*/
if(r215use_current((T215*)((/*RF2*/(C)->_routine_body/*44*/)))){
(/*SFN*/C->_use_current_state)=22;
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_use_current_state/*16*/))==(24)){
/*[IF*/
if(((/*RF2*/(C)->_rescue_compound/*48*/))!=((void*)(NULL))){
/*[IF*/
if(r215use_current((T215*)((/*RF2*/(C)->_rescue_compound/*48*/)))){
(/*SFN*/C->_use_current_state)=22;
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_use_current_state/*16*/))==(24)){
/*[IF*/
if(((/*RF2*/(C)->_ensure_assertion/*52*/))!=((void*)(NULL))){
/*[IF*/
if(r214use_current((T214*)((/*RF2*/(C)->_ensure_assertion/*52*/)))){
(/*SFN*/C->_use_current_state)=22;
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_use_current_state/*16*/))==(24)){
(/*SFN*/C->_use_current_state)=21;
}
/*FI]*/
}
void r395address_of_c_define(T395* C,T0* a1){
/*[IF*/
if(r47boost((T47*)(oBC13run_control))){
/*[IF*/
if(r395use_current(C)){
}
else{
r395address_of_c_define_wrapper(C,a1);
}
/*FI]*/
}
else{
r395address_of_c_define_wrapper(C,a1);
}
/*FI]*/
}
T0* r395run_ensure(T395* C){
T0* R=NULL;
R=r51run_ensure((T51*)(X52base_class((/*RF2*/(C)->_current_type/*8*/))),(T0*)C);
return R;
}
void r395default_mapping_function(T395* C){
T6 _tcbd=0;
T6 _uc=0;
T6 _no_check=0;
_no_check=r47no_check((T47*)(oBC13run_control));
_uc=r395use_current(C);
/*[IF*/
if(!(_uc)){
_tcbd=r325target_cannot_be_dropped((T325*)(oBC13cpp));
/*[IF*/
if(_tcbd){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\54');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
}
/*FI]*/
r395mapping_name(C);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\50');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
/*[IF*/
if(_no_check){
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms334_759));
/*]*/
}
/*FI]*/
/*[IF*/
if(_uc){
/*[IF*/
if(_no_check){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\54');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
r325put_target_as_target((T325*)(oBC13cpp));
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_arguments/*28*/))!=((void*)(NULL))){
/*[IF*/
if((_uc)||(_no_check)){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\54');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
r325put_arguments((T325*)(oBC13cpp));
}
/*FI]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
/*[IF*/
if((!(_uc))&&(_tcbd)){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
}
void r395address_of_wrapper_name_in(T395* C,T0* a1){
r7extend(((T7*)a1),((T3)'W'));
r2append_in(r395id(C),a1);
X82mapping_c_in((/*RF2*/(C)->_name/*12*/),a1);
}
void r395make(T395* C,T0* a1,T0* a2,T0* a3){
(/*SFN*/C->_current_type)=a1;
(/*SFN*/C->_name)=a2;
(/*SFN*/C->_base_feature)=a3;
r50add_rf((T50*)(r395run_class(C)),(T0*)C,X82to_key(a2));
r49incr_magic_count((T49*)(oBC13small_eiffel));
(/*SFN*/C->_use_current_state)=23;
(/*SFN*/C->_stupid_switch_state)=23;
r49push((T49*)(oBC13small_eiffel),(T0*)C);
r395initialize(C);
r49pop((T49*)(oBC13small_eiffel));
}
void r395c_assertion_flag(T395* C){
/*[IRF3.3clear*/((((T7*)((T7*)(oBC334c_code))))->_count)=(0);
/*]*/
r395c_frame_descriptor_name_in(C,oBC334c_code);
r7append((T7*)(oBC334c_code),((T0*)ms334_30285));
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),oBC334c_code);
/*]*/
}
void r395c_define_opening(T395* C){
T0* _oresult=NULL;
T6 _ensure_check=0;
T6 _no_check=0;
T0* _t=NULL;
_no_check=r47no_check((T47*)(oBC13run_control));
_ensure_check=r47ensure_check((T47*)(oBC13run_control));
/*[IF*/
if(((/*RF2*/(C)->_rescue_compound/*48*/))!=((void*)(NULL))){
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms334_21346));
/*]*/
}
/*FI]*/
/*[IF*/
{/*AT*//*[IF*/
if(_no_check){
_t=X52run_type((/*RF2*/(C)->_result_type/*32*/));
r7append((T7*)(oBC13c_frame_descriptor_locals),((T0*)ms334_7344));
_oresult=r363o_result((/*RF2*/(C)->_base_feature/*24*/));
r7append((T7*)(oBC13c_frame_descriptor_locals),_oresult);
r7extend((T7*)(oBC13c_frame_descriptor_locals),((T3)'\54'));
r203increment((T203*)(oBC13c_frame_descriptor_local_count));
r7append((T7*)(oBC13c_frame_descriptor_format),((T0*)ms15_7314));
X52c_frame_descriptor(_t);
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_local_vars/*40*/))!=((void*)(NULL))){
r169c_declare((T169*)((/*RF2*/(C)->_local_vars/*40*/)));
}
/*FI]*/
/*[IF*/
if(_ensure_check){
/*[IF*/
if(((/*RF2*/(C)->_ensure_assertion/*52*/))!=((void*)(NULL))){
r214c_declare_for_old((T214*)((/*RF2*/(C)->_ensure_assertion/*52*/)));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(_no_check){
/*[IF*/
if(((/*RF2*/((T203*)(oBC13c_frame_descriptor_local_count))->_value/*0*/))>(0)){
r7copy((T7*)(oBC334c_code),((T0*)ms334_21567));
/*[IRF3.5append_in*/r2append_in(((T2)((/*RF2*/((T203*)(oBC13c_frame_descriptor_local_count))->_value/*0*/))),oBC334c_code);
/*]*/
r7extend((T7*)(oBC334c_code),((T3)'\135'));
r7append((T7*)(oBC334c_code),((T0*)ms14_138));
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),oBC334c_code);
/*]*/
}
/*FI]*/
r395c_initialize_ds_one_by_one(C);
/*[IRF3.2c_initialize_locals_one_by_one*/{T3 _c=0;
T2 _j=0;
T2 _i=0;
_j=1;
while (!(((/*RF2*/((T203*)(oBC13c_frame_descriptor_local_count))->_value/*0*/))==(_i)))
{
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms334_8120));
/*]*/
/*[IRF3.5put_integer*/r48put_integer(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),_i);
/*]*/
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms334_308));
/*]*/
_c=/*(IRF4.6item*/((/*RF2*/((T7*)(oBC13c_frame_descriptor_locals))->_storage/*0*/))[(_j)-(1)]/*)*/;
while (!((_c)==(((T3)'\54'))))
{
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=_c;
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
_j=(_j)+(1);
_c=/*(IRF4.6item*/((/*RF2*/((T7*)(oBC13c_frame_descriptor_locals))->_storage/*0*/))[(_j)-(1)]/*)*/;
}
_j=(_j)+(1);
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms14_138));
/*]*/
_i=(_i)+(1);
}
}/*]*/
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms334_14520a));
/*]*/
}
/*FI]*/
/*[IF*/
if(_ensure_check){
/*[IF*/
if(((/*RF2*/(C)->_ensure_assertion/*52*/))!=((void*)(NULL))){
r214compile_to_c_old((T214*)((/*RF2*/(C)->_ensure_assertion/*52*/)));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_rescue_compound/*48*/))!=((void*)(NULL))){
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms334_23008));
/*]*/
r215compile_to_c((T215*)((/*RF2*/(C)->_rescue_compound/*48*/)));
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms334_47752));
/*]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_local_vars/*40*/))!=((void*)(NULL))){
r169initialize_expanded((T169*)((/*RF2*/(C)->_local_vars/*40*/)));
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_rescue_compound/*48*/))!=((void*)(NULL))){
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms334_7436));
/*]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_require_assertion/*36*/))!=((void*)(NULL))){
r376compile_to_c((T376*)((/*RF2*/(C)->_require_assertion/*36*/)));
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_rescue_compound/*48*/))!=((void*)(NULL))){
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms334_57680));
/*]*/
/*[IF*/
if(_no_check){
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms334_11988));
/*]*/
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms334_14520));
/*]*/
}
/*FI]*/
}
/*FI]*/
}
void r395c_define_closing(T395* C){
/*[IF*/
if(r47ensure_check((T47*)(oBC13run_control))){
/*[IF*/
if(((/*RF2*/(C)->_ensure_assertion/*52*/))!=((void*)(NULL))){
r214compile_to_c((T214*)((/*RF2*/(C)->_ensure_assertion/*52*/)));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(r395use_current(C)){
/*[IF*/
if((X82to_string((/*RF2*/(C)->_name/*12*/)))!=((void*)(((T0*)ms15_8750)))){
r325current_class_invariant((/*RF2*/(C)->_current_type/*8*/));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_rescue_compound/*48*/))!=((void*)(NULL))){
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms334_25380));
/*]*/
}
/*FI]*/
/*[IF*/
if(r47no_check((T47*)(oBC13run_control))){
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms334_19400));
/*]*/
}
/*FI]*/
}
void r395initialize(T395* C){
(/*SFN*/C->_result_type)=(/*RF2*/((T307*)((/*RF2*/(C)->_base_feature/*24*/)))->_result_type/*56*/);
(/*SFN*/C->_arguments)=(/*RF2*/((T307*)((/*RF2*/(C)->_base_feature/*24*/)))->_arguments/*20*/);
/*[IF*/
if(X52is_anchored((/*RF2*/(C)->_result_type/*32*/))){
r395fe_vffd7(C);
}
else if(X52is_formal_generic((/*RF2*/(C)->_result_type/*32*/))){
{T68 se_tmp0;
r66add_position((*(se_tmp0=X52start_position((/*RF2*/(C)->_result_type/*32*/)),&se_tmp0)));
}
r395fatal_error(((T0*)ms395_320658));
}
/*FI]*/
(/*SFN*/C->_result_type)=X52to_runnable((/*RF2*/(C)->_result_type/*32*/),(/*RF2*/(C)->_current_type/*8*/));
/*[IF*/
if(((/*RF2*/(C)->_arguments/*28*/))!=((void*)(NULL))){
/*[IF*/
if(!(r178is_runnable((T178*)((/*RF2*/(C)->_arguments/*28*/)),(/*RF2*/(C)->_current_type/*8*/)))){
{T178*n=((T178*)malloc(sizeof(*n))/*12*/);
*n=M178;
r178with(n,(/*RF2*/(C)->_arguments/*28*/),(/*RF2*/(C)->_current_type/*8*/));
(/*SFN*/C->_arguments)=((T0*)n);
}
}
/*FI]*/
}
/*FI]*/
(/*SFN*/C->_local_vars)=(/*RF2*/((T307*)((/*RF2*/(C)->_base_feature/*24*/)))->_local_vars/*40*/);
/*[IF*/
if(((/*RF2*/(C)->_local_vars/*40*/))!=((void*)(NULL))){
(/*SFN*/C->_local_vars)=r169to_runnable((T169*)((/*RF2*/(C)->_local_vars/*40*/)),(/*RF2*/(C)->_current_type/*8*/));
}
/*FI]*/
(/*SFN*/C->_routine_body)=(/*RF2*/((T307*)((/*RF2*/(C)->_base_feature/*24*/)))->_routine_body/*44*/);
/*[IF*/
if(((/*RF2*/(C)->_routine_body/*44*/))!=((void*)(NULL))){
(/*SFN*/C->_routine_body)=r215to_runnable((T215*)((/*RF2*/(C)->_routine_body/*44*/)),(/*RF2*/(C)->_current_type/*8*/));
}
/*FI]*/
/*[IF*/
if(r47require_check((T47*)(oBC13run_control))){
(/*SFN*/C->_require_assertion)=r395run_require(C);
}
/*FI]*/
/*[IF*/
if(r47ensure_check((T47*)(oBC13run_control))){
(/*SFN*/C->_ensure_assertion)=r395run_ensure(C);
}
/*FI]*/
(/*SFN*/C->_rescue_compound)=(/*RF2*/((T307*)((/*RF2*/(C)->_base_feature/*24*/)))->_rescue_compound/*48*/);
/*[IF*/
if(((/*RF2*/(C)->_rescue_compound/*48*/))==((void*)(NULL))){
(/*SFN*/C->_rescue_compound)=r395default_rescue_compound(C);
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_rescue_compound/*48*/))!=((void*)(NULL))){
/*[IRF3.3set_used*/((((T380*)((T380*)(oBC13exceptions_handler))))->_used)=(1);
/*]*/
(/*SFN*/C->_rescue_compound)=r215to_runnable((T215*)((/*RF2*/(C)->_rescue_compound/*48*/)),(/*RF2*/(C)->_current_type/*8*/));
}
/*FI]*/
r363register_function((T0*)C);
}
void r395mapping_c(T395* C){
/*[IF*/
if(r395is_pre_computable(C)){
/*[IRF3.6c_put_o_result*/{T0* b1=(T0*)C;
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),r363o_result(/*SSWA2*//*X334base_feature*/(/*RF2*/(((T368*)b1))->_base_feature/*24*/)));
/*]*/
}/*]*/
}
else{
r395default_mapping_function(C);
}
/*FI]*/
}
void r395address_of_c_define_wrapper(T395* C,T0* a1){
/*[IRF3.3clear*/((((T7*)((T7*)(oBC334c_code))))->_count)=(0);
/*]*/
/*[IF*/
if(((/*RF2*/(C)->_result_type/*32*/))==((void*)(NULL))){
r7append((T7*)(oBC334c_code),((T0*)ms14_1736a));
}
else{
X52c_type_for_external_in((/*RF2*/(C)->_result_type/*32*/),oBC334c_code);
}
/*FI]*/
r7extend((T7*)(oBC334c_code),((T3)'\40'));
r395address_of_wrapper_name_in(C,oBC334c_code);
r7extend((T7*)(oBC334c_code),((T3)'\50'));
X52c_type_for_external_in((/*RF2*/(C)->_current_type/*8*/),oBC334c_code);
r7extend((T7*)(oBC334c_code),((T3)'\40'));
r7extend((T7*)(oBC334c_code),((T3)'C'));
/*[IF*/
if(((/*RF2*/(C)->_arguments/*28*/))!=((void*)(NULL))){
r7extend((T7*)(oBC334c_code),((T3)'\54'));
r178external_prototype_in((T178*)((/*RF2*/(C)->_arguments/*28*/)),oBC334c_code);
}
/*FI]*/
r7extend((T7*)(oBC334c_code),((T3)'\51'));
r325put_c_heading((T325*)(oBC13cpp),oBC334c_code);
r338define_body_of((T0*)C);
}
void r395std_compute_stupid_switch(T395* C,T0* a1){
T0* _rt=NULL;
_rt=(/*RF2*/(C)->_result_type/*32*/);
/*[IF*/
if(((_rt)!=((void*)(NULL)))&&(X52is_user_expanded(_rt))){
(/*SFN*/C->_stupid_switch_state)=21;
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_stupid_switch_state/*20*/))==(24)){
/*[IF*/
if(((/*RF2*/(C)->_routine_body/*44*/))!=((void*)(NULL))){
/*[IF*/
if(!(r215stupid_switch((T215*)((/*RF2*/(C)->_routine_body/*44*/)),a1))){
(/*SFN*/C->_stupid_switch_state)=21;
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_stupid_switch_state/*20*/))==(24)){
/*[IF*/
if(((/*RF2*/(C)->_rescue_compound/*48*/))!=((void*)(NULL))){
/*[IF*/
if(!(r215stupid_switch((T215*)((/*RF2*/(C)->_rescue_compound/*48*/)),a1))){
(/*SFN*/C->_stupid_switch_state)=21;
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_stupid_switch_state/*20*/))==(24)){
(/*SFN*/C->_stupid_switch_state)=22;
}
/*FI]*/
}
void r395routine_afd_check(T395* C){
/*[IF*/
if(((/*RF2*/(C)->_require_assertion/*36*/))!=((void*)(NULL))){
r376afd_check((T376*)((/*RF2*/(C)->_require_assertion/*36*/)));
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_routine_body/*44*/))!=((void*)(NULL))){
r215afd_check((T215*)((/*RF2*/(C)->_routine_body/*44*/)));
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_rescue_compound/*48*/))!=((void*)(NULL))){
r215afd_check((T215*)((/*RF2*/(C)->_rescue_compound/*48*/)));
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_ensure_assertion/*52*/))!=((void*)(NULL))){
r214afd_check((T214*)((/*RF2*/(C)->_ensure_assertion/*52*/)));
}
/*FI]*/
}
T0* r395run_require(T395* C){
T0* R=NULL;
R=r51run_require((T51*)(X52base_class((/*RF2*/(C)->_current_type/*8*/))),(T0*)C);
return R;
}
void r395mapping_name(T395* C){
/*[IRF3.3clear*/((((T7*)((T7*)(oBC334c_code))))->_count)=(0);
/*]*/
r7extend((T7*)(oBC334c_code),((T3)'r'));
r2append_in(r395id(C),oBC334c_code);
X82mapping_c_in((/*RF2*/(C)->_name/*12*/),oBC334c_code);
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),oBC334c_code);
/*]*/
}
void r395c_initialize_ds_one_by_one(T395* C){
r7copy((T7*)(oBC334c_code),((T0*)ms334_36950));
r395c_frame_descriptor_name_in(C,oBC334c_code);
r7append((T7*)(oBC334c_code),((T0*)ms14_138));
/*[IF*/
if(r395use_current(C)){
r7append((T7*)(oBC334c_code),((T0*)ms334_18175));
}
else{
r7append((T7*)(oBC334c_code),((T0*)ms334_10999));
}
/*FI]*/
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),oBC334c_code);
/*]*/
{T68 se_tmp0;
r325put_position_in_ds(/*(IRF4.6start_position*/(*(se_tmp0=r307start_position(((T307*)((/*RF2*/(C)->_base_feature/*24*/)))),&se_tmp0))/*)*/);
}
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms334_11466));
/*]*/
/*[IF*/
if(((/*RF2*/((T203*)(oBC13c_frame_descriptor_local_count))->_value/*0*/))>(0)){
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms334_11880));
/*]*/
}
/*FI]*/
}
T6 r395use_current(T395* C){
T6 R=0;
{int z1=(/*RF2*/(C)->_use_current_state/*16*/);
if((22==z1)){
R=1;
}
else
if((21==z1)){
}
else
if((23==z1)){
(/*SFN*/C->_use_current_state)=24;
/*[IRF3.4compute_use_current*/r395std_compute_use_current(C);
/*]*/
R=((/*RF2*/(C)->_use_current_state/*16*/))==(22);
}
else {R=1;
}}
return R;
}
T6 r395is_exported_in(T395* C,T0* a1){
T6 R=0;
R=r99gives_permission_to((T99*)(r395clients(C)),a1);
return R;
}
T0* r395default_rescue_compound(T395* C){
T0* R=NULL;
R=r50get_default_rescue((T50*)(r395run_class(C)),(/*RF2*/(C)->_name/*12*/));
return R;
}
T0* r395run_class(T395* C){
T0* R=NULL;
R=X52run_class((/*RF2*/(C)->_current_type/*8*/));
return R;
}
void r395fatal_error(T0* a1){
/*[IRF3.6append*/{T0* b1=a1;
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r66print_as_fatal_error((T66*)(oBC13eh));
}
T0* r395stupid_switch(T395* C,T0* a1){
T0* R=NULL;
{int z1=(/*RF2*/(C)->_stupid_switch_state/*20*/);
if((22==z1)){
R=((T0*)ms395_5509);
}
else
if((21==z1)){
}
else
if((23==z1)){
(/*SFN*/C->_stupid_switch_state)=24;
/*[IRF3.6compute_stupid_switch*/{T395* C1=C;
T0* b1=a1;
r395std_compute_stupid_switch(C1,b1);
}/*]*/
/*[IF*/
if(((/*RF2*/(C)->_stupid_switch_state/*20*/))==(22)){
R=((T0*)ms395_5509);
}
/*FI]*/
}
else {}}
return R;
}
void r395define_prototype(T395* C){
T6 _no_check=0;
T2 _mem_id=0;
_no_check=r47no_check((T47*)(oBC13run_control));
/*[IF*/
if(r47no_check((T47*)(oBC13run_control))){
/*[IRF3.3reset*/((((T203*)((T203*)(oBC13c_frame_descriptor_local_count))))->_value)=(0);
/*]*/
/*[IRF3.3clear*/((((T7*)((T7*)(oBC13c_frame_descriptor_format))))->_count)=(0);
/*]*/
r7extend((T7*)(oBC13c_frame_descriptor_format),((T3)'\42'));
/*[IRF3.3clear*/((((T7*)((T7*)(oBC13c_frame_descriptor_locals))))->_count)=(0);
/*]*/
}
/*FI]*/
_mem_id=r395id(C);
/*[IRF3.3clear*/((((T7*)((T7*)(oBC334c_code))))->_count)=(0);
/*]*/
/*[IF*/
if(((/*RF2*/(C)->_result_type/*32*/))==((void*)(NULL))){
r7append((T7*)(oBC334c_code),((T0*)ms14_1736a));
}
else{
X52c_type_for_result_in(X52run_type((/*RF2*/(C)->_result_type/*32*/)),oBC334c_code);
}
/*FI]*/
r7extend((T7*)(oBC334c_code),((T3)'\40'));
r7extend((T7*)(oBC334c_code),((T3)'r'));
r2append_in(_mem_id,oBC334c_code);
X82mapping_c_in((/*RF2*/(C)->_name/*12*/),oBC334c_code);
r7extend((T7*)(oBC334c_code),((T3)'\50'));
/*[IF*/
if(_no_check){
r7append((T7*)(oBC334c_code),((T0*)ms334_56160));
/*[IF*/
if((r395use_current(C))||(((/*RF2*/(C)->_arguments/*28*/))!=((void*)(NULL)))){
r7extend((T7*)(oBC334c_code),((T3)'\54'));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(r395use_current(C)){
X52c_type_for_target_in((/*RF2*/(C)->_current_type/*8*/),oBC334c_code);
r7extend((T7*)(oBC334c_code),((T3)'\40'));
r7extend((T7*)(oBC334c_code),((T3)'C'));
X52c_frame_descriptor((/*RF2*/(C)->_current_type/*8*/));
/*[IF*/
if(((/*RF2*/(C)->_arguments/*28*/))!=((void*)(NULL))){
r7extend((T7*)(oBC334c_code),((T3)'\54'));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_arguments/*28*/))==((void*)(NULL))){
/*[IF*/
if(_no_check){
}
else if(!(r395use_current(C))){
r7append((T7*)(oBC334c_code),((T0*)ms14_1736a));
}
/*FI]*/
}
else{
r178compile_to_c_in((T178*)((/*RF2*/(C)->_arguments/*28*/)),oBC334c_code);
}
/*FI]*/
r7extend((T7*)(oBC334c_code),((T3)'\51'));
r325put_c_heading((T325*)(oBC13cpp),oBC334c_code);
/*[IRF3.3swap_on_c*/((((T325*)((T325*)(oBC13cpp))))->_current_out)=(oBC325out_c);
/*]*/
}
void r395c_frame_descriptor(T395* C){
/*[IF*/
if(r47no_check((T47*)(oBC13run_control))){
r7copy((T7*)(oBC334c_code),((T0*)ms334_23340));
r395c_frame_descriptor_name_in(C,oBC334c_code);
r325put_extern7((T325*)(oBC13cpp),oBC334c_code);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\173');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
r395put_c_name_tag(C);
/*[IRF3.3clear*/((((T7*)((T7*)(oBC334c_code))))->_count)=(0);
/*]*/
r7extend((T7*)(oBC334c_code),((T3)'\54'));
/*[IF*/
if(r395use_current(C)){
r7extend((T7*)(oBC334c_code),((T3)'1'));
}
else{
r7extend((T7*)(oBC334c_code),((T3)'0'));
}
/*FI]*/
r7extend((T7*)(oBC334c_code),((T3)'\54'));
/*[IRF3.5append_in*/r2append_in(((T2)((/*RF2*/((T203*)(oBC13c_frame_descriptor_local_count))->_value/*0*/))),oBC334c_code);
/*]*/
r7extend((T7*)(oBC334c_code),((T3)'\54'));
r7append((T7*)(oBC334c_code),oBC13c_frame_descriptor_format);
r7append((T7*)(oBC334c_code),((T0*)ms334_2226));
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),oBC334c_code);
/*]*/
}
/*FI]*/
}
void r395address_of_c_mapping(T395* C){
/*[IF*/
if(r47boost((T47*)(oBC13run_control))){
/*[IF*/
if(r395use_current(C)){
r395mapping_name(C);
}
else{
r395address_of_c_mapping_wrapper(C);
}
/*FI]*/
}
else{
r395address_of_c_mapping_wrapper(C);
}
/*FI]*/
}
void r395fe_vffd7(T395* C){
{T68 se_tmp0;
r66add_position((*(se_tmp0=X52start_position((/*RF2*/(C)->_result_type/*32*/)),&se_tmp0)));
}
r395fatal_error(((T0*)ms334_203069));
}
T6 r395is_pre_computable(T395* C){
T6 R=0;
R=r363is_pre_computable((T0*)C);
return R;
}
void r395c_frame_descriptor_name_in(T395* C,T0* a1){
r7extend(((T7*)a1),((T3)'f'));
r2append_in(r395id(C),a1);
X82mapping_c_in((/*RF2*/(C)->_name/*12*/),a1);
}
T0* r209try_to_undefine_aux(T209* C,T0* a1,T0* a2){
T0* R=NULL;
{T68 se_tmp0;
r66add_position((*(se_tmp0=r209start_position(C),&se_tmp0)));
}
{T68 se_tmp0;
r209error((*(se_tmp0=X82start_position(a1),&se_tmp0)),((T0*)ms200_98784));
}
r51fatal_undefine(((T51*)a2),a1);
return R;
}
T0* r209try_to_undefine(T209* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _fn2=NULL;
{T68 se_tmp0;
r66add_position((*(se_tmp0=X82start_position(a1),&se_tmp0)));
}
_fn2=r83feature_name((T83*)((/*RF2*/(C)->_names/*8*/)),X82to_key(a1));
/*[IF*/
if((_fn2)!=((void*)(NULL))){
X82undefine_in(_fn2,a2);
}
/*FI]*/
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC66explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T67*)((T67*)(oBC66positions))))->_upper)=(-(1));
/*]*/
/*]*/
R=r209try_to_undefine_aux(C,a1,a2);
/*[IF*/
if((R)!=((void*)(NULL))){
X284set_clients(R,(/*RF2*/(C)->_clients/*16*/));
r209merge_header_comments(C,R);
}
else{
r51fatal_undefine(((T51*)a2),a1);
}
/*FI]*/
return R;
}
void r209check_obsolete(T209* C,T68 a1){
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
T0* r209to_run_feature(T209* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _rc=NULL;
_rc=X52run_class(a1);
R=r50at(((T50*)_rc),a2);
if(NULL!=(R)){
switch(((T0*)R)->id){
case 388:
break;
default:
R=NULL;
}
}/*[IF*/
if((R)==((void*)(NULL))){
{T388*n=((T388*)malloc(sizeof(*n))/*36*/);
*n=M388;
r388make(n,a1,a2,(T0*)C);
R=((T0*)n);
}
}
/*FI]*/
return R;
}
void r209error(T68 a1,T0* a2){
r66add_position(a1);
/*[IRF3.6append*/{T0* b1=a2;
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r66print_as_error((T66*)(oBC13eh));
}
T6 r209is_not_mergeable_with(T209* C,T0* a1){
T6 R=0;
/*[IF*/
if(((/*RF2*/(C)->_result_type/*20*/))==((void*)(NULL))){
R=(X90result_type(a1))!=((void*)(NULL));
}
else{
R=(X90result_type(a1))==((void*)(NULL));
}
/*FI]*/
/*[IF*/
if(R){
/*[IRF3.6append*/{T0* b1=((T0*)ms90_64152);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
}
else{
/*[IF*/
{/*AT*/R=(X90arguments(a1))!=((void*)(NULL));
}
/*FI]*/
/*[IF*/
if(R){
/*[IRF3.6append*/{T0* b1=((T0*)ms90_82612);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
}
else {/*AT*/}
/*FI]*/
}
/*FI]*/
r209merge_header_comments(C,a1);
return R;
}
void r209make(T209* C,T0* a1,T0* a2,T0* a3){
/*[IRF3.3make_e_feature*/((((T209*)(C)))->_names)=(a1);
/*]*/
(/*SFN*/C->_result_type)=a2;
(/*SFN*/C->_value_mem)=a3;
}
void r209add_into(T209* C,T0* a1){
T0* _fn=NULL;
T2 _i=0;
{T68 se_tmp0;
(/*SFN*/C->_base_class)=(/*RF2*/((*(se_tmp0=X82start_position(r83item((T83*)((/*RF2*/(C)->_names/*8*/)),1)),&se_tmp0)))._base_class/*0*/);
}
_i=1;
while (!((_i)>(r83count((T83*)((/*RF2*/(C)->_names/*8*/))))))
{
_fn=r83item((T83*)((/*RF2*/(C)->_names/*8*/)),_i);
/*[IF*/
if(r91has(((T91*)a1),X82to_key(_fn))){
_fn=/*SSFRF4*//*X90first_name*//*(IRF4.6first_name*/(/*RF2*/(((T83*)((/*RF2*/((T198*)(r91at(((T91*)a1),X82to_key(_fn))))->_names/*8*/))))->_first/*0*/)/*)*/;
{T68 se_tmp0;
r66add_position((*(se_tmp0=X82start_position(_fn),&se_tmp0)));
}
{T68 se_tmp0;
r66add_position((*(se_tmp0=X82start_position(r83item((T83*)((/*RF2*/(C)->_names/*8*/)),_i)),&se_tmp0)));
}
/*[IRF3.6append*/{T0* b1=((T0*)ms90_41470);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X82to_string(_fn);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms14_46);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r66print_as_error((T66*)(oBC13eh));
}
else{
r91put(((T91*)a1),(T0*)C,X82to_key(_fn));
}
/*FI]*/
_i=(_i)+(1);
}
}
T6 r209can_hide(T209* C,T0* a1,T0* a2){
T6 R=0;
/*[IF*/
if(((/*RF2*/(C)->_result_type/*20*/))!=((void*)(X90result_type(a1)))){
/*[IF*/
if((((/*RF2*/(C)->_result_type/*20*/))==((void*)(NULL)))||((X90result_type(a1))==((void*)(NULL)))){
{T68 se_tmp0;
r66add_position((*(se_tmp0=X90start_position(a1),&se_tmp0)));
}
{T68 se_tmp0;
r209error((*(se_tmp0=r209start_position(C),&se_tmp0)),((T0*)ms90_64152));
}
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X90arguments(a1)))){
/*[IF*/
{/*AT*/{T68 se_tmp0;
r66add_position((*(se_tmp0=X90start_position(a1),&se_tmp0)));
}
{T68 se_tmp0;
r209error((*(se_tmp0=r209start_position(C),&se_tmp0)),((T0*)ms90_82612));
}
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/(/*RF2*/((T66*)(oBC13eh))->_error_counter/*0*/)/*)*/)==(0)){
/*[IF*/
if(((/*RF2*/(C)->_result_type/*20*/))!=((void*)(NULL))){
/*[IF*/
if(!(X52is_a_in((/*RF2*/(C)->_result_type/*20*/),X90result_type(a1),a2))){
/*[IRF3.6append*/{T0* b1=((T0*)ms90_51136);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X52run_time_mark((/*RF2*/(((T50*)a2))->_current_type/*0*/));
r7append((T7*)(oBC66explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms14_46);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r66print_as_error((T66*)(oBC13eh));
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/(/*RF2*/((T66*)(oBC13eh))->_error_counter/*0*/)/*)*/)==(0)){
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
/*FI]*/
R=(/*(IRF4.9nb_errors*/(/*RF2*/((T66*)(oBC13eh))->_error_counter/*0*/)/*)*/)==(0);
/*[IF*/
if(R){
r209merge_header_comments(C,a1);
}
/*FI]*/
return R;
}
void r209merge_header_comments(T209* C,T0* a1){
/*[IF*/
if((/*RF2*/((T49*)(oBC13small_eiffel))->_short_flag/*5*/)){
/*[IF*/
if(((/*RF2*/(C)->_header_comment/*12*/))==((void*)(NULL))){
(/*SFN*/C->_header_comment)=/*SSWARF2*//*X90header_comment*/(/*RF2*/(((T198*)a1))->_header_comment/*12*/);
}
else if((/*SSWARF2*//*X90header_comment*/(/*RF2*/(((T198*)a1))->_header_comment/*12*/))==((void*)(NULL))){
X90set_header_comment(a1,(/*RF2*/(C)->_header_comment/*12*/));
}
/*FI]*/
}
/*FI]*/
}
T68 r209start_position(T209* C){
T68 R={NULL,0};
{T68 se_tmp0;
R=(*(se_tmp0=X82start_position(/*(IRF4.6first_name*/(/*RF2*/(((T83*)((/*RF2*/(C)->_names/*8*/))))->_first/*0*/)/*)*/),&se_tmp0));
}
return R;
}
void r166compile_to_c_old(T166* C){
/*[IF*/
if(((/*RF2*/(C)->_arguments/*20*/))!=((void*)(NULL))){
/*SSPRF3*//*X139compile_to_c_old*/r139compile_to_c_old((T139*)((/*RF2*/(C)->_arguments/*20*/)));
}
/*FI]*/
}
T0* r166add_comment(T166* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r44count(((T44*)((/*RF2*/(((T81*)a1))->_list/*8*/))))/*)*/)==(0))){
R=((T0*)(C));
}
else{
{T229*n=((T229*)malloc(sizeof(*n))/*12*/);
*n=M229;
r229make(n,(T0*)C,a1);
R=((T0*)n);
}
}
/*FI]*/
return R;
}
void r166afd_check(T166* C){
/*[IF*/
if(((/*RF2*/(C)->_arguments/*20*/))!=((void*)(NULL))){
/*SSPRF3*//*X139afd_check*/r139afd_check((T139*)((/*RF2*/(C)->_arguments/*20*/)));
}
/*FI]*/
}
void r166c_declare_for_old(T166* C){
/*[IF*/
if(((/*RF2*/(C)->_arguments/*20*/))!=((void*)(NULL))){
/*SSPRF3*//*X139c_declare_for_old*/r139c_declare_for_old((T139*)((/*RF2*/(C)->_arguments/*20*/)));
}
/*FI]*/
}
void r166collect_c_tmp(T166* C){
/*[IF*/
if(((/*RF2*/(C)->_run_feature/*24*/))!=((void*)(NULL))){
r398collect_c_tmp((T398*)((/*RF2*/(C)->_run_feature/*24*/)));
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_arguments/*20*/))!=((void*)(NULL))){
/*SSPRF3*//*X139collect_c_tmp*/r139collect_c_tmp((T139*)((/*RF2*/(C)->_arguments/*20*/)));
}
/*FI]*/
}
T0* r166to_runnable(T166* C,T0* a1){
T0* R=NULL;
T0* _pn=NULL;
T0* _super=NULL;
T0* _wrf=NULL;
/*[IF*/
if(((/*RF2*/(C)->_current_type/*16*/))==((void*)(NULL))){
(/*SFN*/C->_current_type)=a1;
R=((T0*)(C));
_wrf=r49top_rf((T49*)(oBC13small_eiffel));
/*[IF*/
if((X334result_type(_wrf))==((void*)(NULL))){
r66add_position((/*RF2*/(C)->_start_position/*4*/));
r166fatal_error(((T0*)ms166_366828));
}
/*FI]*/
_super=r166super_feature(C,_wrf);
_pn=r166precursor_name(/*SSWARF2*//*X334name*/(/*RF2*/(((T368*)_wrf))->_name/*12*/),_super);
{T398*n=((T398*)malloc(sizeof(*n))/*56*/);
*n=M398;
r398make(n,a1,_pn,_super);
(/*SFN*/C->_run_feature)=((T0*)n);
}
r166prepare_arguments(C,a1);
}
else{
{T166*n=((T166*)malloc(sizeof(*n))/*28*/);
*n=M166;
r166make(n,(/*RF2*/(C)->_start_position/*4*/),(/*RF2*/(C)->_parent/*12*/),(/*RF2*/(C)->_arguments/*20*/));
R=((T0*)n);
}
R=r166to_runnable(((T166*)R),a1);
}
/*FI]*/
return R;
}
T2 r166to_integer(T166* C){
T2 R=0;
r166error((/*RF2*/(C)->_start_position/*4*/),((T0*)ms14_45441));
return R;
}
void r166error(T68 a1,T0* a2){
r66add_position(a1);
/*[IRF3.6append*/{T0* b1=a2;
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r66print_as_error((T66*)(oBC13eh));
}
void r166prepare_arguments(T166* C,T0* a1){
T0* _a=NULL;
/*[IF*/
if(((/*RF2*/(C)->_arguments/*20*/))!=((void*)(NULL))){
_a=X139to_runnable((/*RF2*/(C)->_arguments/*20*/),a1);
/*[IF*/
if((_a)==((void*)(NULL))){
{T68 se_tmp0;
r166error((*(se_tmp0=X139start_position((/*RF2*/(C)->_arguments/*20*/)),&se_tmp0)),((T0*)ms14_14504));
}
}
else{
(/*SFN*/C->_arguments)=_a;
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/(/*RF2*/((T66*)(oBC13eh))->_error_counter/*0*/)/*)*/)==(0)){
X139match_with((/*RF2*/(C)->_arguments/*20*/),(/*RF2*/(C)->_run_feature/*24*/),a1);
}
/*FI]*/
}
else if(((/*RF2*/((T398*)((/*RF2*/(C)->_run_feature/*24*/)))->_arguments/*28*/))!=((void*)(NULL))){
{T68 se_tmp0;
r66add_position((*(se_tmp0=r398start_position((T398*)((/*RF2*/(C)->_run_feature/*24*/))),&se_tmp0)));
}
r66add_position((/*RF2*/(C)->_start_position/*4*/));
r166fatal_error(((T0*)ms167_63456));
}
/*FI]*/
}
T0* r166static_result_base_class(T166* C){
T0* R=NULL;
T0* _bcn=NULL;
T0* _rt=NULL;
T0* _e_feature=NULL;
/*[IF*/
if(((/*RF2*/(C)->_run_feature/*24*/))!=((void*)(NULL))){
_e_feature=(/*RF2*/((T398*)((/*RF2*/(C)->_run_feature/*24*/)))->_base_feature/*24*/);
_rt=X90result_type(_e_feature);
_bcn=X52static_base_class_name(_rt);
/*[IF*/
if((_bcn)!=((void*)(NULL))){
R=r61base_class(((T61*)_bcn));
}
/*FI]*/
}
/*FI]*/
return R;
}
void r166make(T166* C,T68 a1,T0* a2,T0* a3){
(/*SFN*/C->_start_position)=a1;
(/*SFN*/C->_parent)=a2;
(/*SFN*/C->_arguments)=a3;
}
void r166fatal_error(T0* a1){
/*[IRF3.6append*/{T0* b1=a1;
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r66print_as_fatal_error((T66*)(oBC13eh));
}
T0* r166precursor_name(T0* a1,T0* a2){
T0* R=NULL;
{T394*n=((T394*)malloc(sizeof(*n))/*12*/);
*n=M394;
r394refer_to(n,(/*RF2*/((T51*)(/*SSWARF2*//*X90base_class*/(/*RF2*/(((T198*)a2))->_base_class/*4*/)))->_id/*0*/),a1);
R=((T0*)n);
}
return R;
}
T0* r166super_feature(T166* C,T0* a1){
T0* R=NULL;
T0* _pl=NULL;
T0* _wbc=NULL;
T0* _e_feature=NULL;
_e_feature=/*SSWA2*//*X334base_feature*/(/*RF2*/(((T368*)a1))->_base_feature/*24*/);
_wbc=/*SSWARF2*//*X90base_class*/(/*RF2*/(((T198*)_e_feature))->_base_class/*4*/);
_pl=(/*RF2*/(((T51*)_wbc))->_parent_list/*34*/);
/*[IF*/
if((_pl)==((void*)(NULL))){
r66add_position((/*RF2*/(C)->_start_position/*4*/));
r166fatal_error(((T0*)ms167_268167));
}
else{
R=r57precursor_for(((T57*)_pl),(T0*)C,a1);
}
/*FI]*/
return R;
}
void r166compile_to_c(T166* C){
r325push_precursor((T325*)(oBC13cpp),(/*RF2*/(C)->_run_feature/*24*/),(/*RF2*/(C)->_arguments/*20*/));
r398mapping_c((T398*)((/*RF2*/(C)->_run_feature/*24*/)));
r325pop((T325*)(oBC13cpp));
}
void r319make(T319* C,T68 a1,T0* a2){
(/*SFN*/C->_start_position)=a1;
(/*SFN*/C->_items)=a2;
}
T0* r319clients_for(T319* C,T0* a1){
T0* R=NULL;
T0* _ei=NULL;
T2 _i=0;
_i=(/*RF2*/((T318*)((/*RF2*/(C)->_items/*8*/)))->_upper/*8*/);
while (!((_i)==(0)))
{
_ei=r318item((T318*)((/*RF2*/(C)->_items/*8*/)),_i);
/*[IF*/
if(r317affect(((T317*)_ei),a1)){
/*[IF*/
if((R)==((void*)(NULL))){
R=(/*RF2*/(((T317*)_ei))->_clients/*0*/);
}
else{
R=r99merge_with(((T99*)R),(/*RF2*/(((T317*)_ei))->_clients/*0*/));
}
/*FI]*/
}
/*FI]*/
_i=(_i)-(1);
}
return R;
}
void r337c_plus_plus_prototype(T337* C,T0* a1){
T0* _comment=NULL;
_comment=((T0*)ms334_23000);
r7copy(((T7*)_comment),((T0*)ms14_178a));
r7append(((T7*)_comment),((T0*)ms334_13056));
r7append(((T7*)_comment),(/*RF2*/((T61*)((/*RF2*/((T51*)(/*SSWARF2*//*X289base_class*/(/*RF2*/(((T291*)a1))->_base_class/*4*/)))->_name/*18*/)))->_to_string/*8*/));
r7extend(((T7*)_comment),((T3)'\56'));
r7append(((T7*)_comment),X82to_string((/*RF2*/(C)->_name/*12*/)));
r7append(((T7*)_comment),((T0*)ms14_178));
r7extend(((T7*)_comment),((T3)'\n'));
r337external_prototype_for(C,_comment,a1);
r325put_c_heading((T325*)(oBC13cpp),oBC334c_code);
}
void r337default_mapping_procedure(T337* C){
r337default_mapping_function(C);
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms14_138));
/*]*/
}
T2 r337id(T337* C){
T2 R=0;
R=X52id((/*RF2*/(C)->_current_type/*8*/));
return R;
}
void r337external_prototype(T337* C,T0* a1){
r337external_prototype_for(C,((T0*)ms334_11880a),a1);
r7append((T7*)(oBC334c_code),((T0*)ms14_138));
r325swap_on_h((T325*)(oBC13cpp));
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),oBC334c_code);
/*]*/
/*[IRF3.3swap_on_c*/((((T325*)((T325*)(oBC13cpp))))->_current_out)=(oBC325out_c);
/*]*/
}
void r337fall_down(T337* C){
T0* _rf=NULL;
T0* _sub_name=NULL;
T0* _sub_bc=NULL;
T0* _current_bc=NULL;
T0* _sub_rc=NULL;
T0* _current_rc=NULL;
T2 _i=0;
T0* _running=NULL;
_current_rc=X52run_class((/*RF2*/(C)->_current_type/*8*/));
_running=(/*RF2*/(((T50*)_current_rc))->_running/*9*/);
/*[IF*/
if((_running)!=((void*)(NULL))){
_current_bc=X52base_class((/*RF2*/(C)->_current_type/*8*/));
_i=(/*RF2*/(((T53*)_running))->_lower/*12*/);
while (!((_i)>((/*RF2*/(((T53*)_running))->_upper/*8*/))))
{
_sub_rc=r53item(((T53*)_running),_i);
/*[IF*/
if((_sub_rc)!=((void*)(_current_rc))){
_sub_bc=X52base_class((/*RF2*/(((T50*)_sub_rc))->_current_type/*0*/));
_sub_name=r51new_name_of(((T51*)_sub_bc),_current_bc,(/*RF2*/(C)->_name/*12*/));
_rf=r50get_feature(((T50*)_sub_rc),_sub_name);
}
/*FI]*/
_i=(_i)+(1);
}
}
/*FI]*/
}
void r337compute_use_current(T337* C){
/*[IF*/
if(r290use_current((T290*)((/*RF2*/(C)->_base_feature/*24*/)))){
(/*SFN*/C->_use_current_state)=22;
}
else{
r337std_compute_use_current(C);
}
/*FI]*/
}
void r337c_define(T337* C){
T0* _bcn=NULL;
T0* _native=NULL;
T0* _bf=NULL;
_bf=(/*RF2*/(C)->_base_feature/*24*/);
_native=(/*RF2*/(((T290*)_bf))->_native/*40*/);
_bcn=(/*RF2*/((T61*)((/*RF2*/((T51*)((/*RF2*/(((T290*)_bf))->_base_class/*4*/)))->_name/*18*/)))->_to_string/*8*/);
X288c_define_procedure(_native,(T0*)C,_bcn,X82to_string(/*(IRF4.6first_name*/(/*RF2*/(((T83*)((/*RF2*/(((T290*)_bf))->_names/*8*/))))->_first/*0*/)/*)*/));
}
T0* r337clients(T337* C){
T0* R=NULL;
T0* _bfbc=NULL;
T0* _bc=NULL;
/*[IF*/
if(((/*RF2*/(C)->_clients_memory/*4*/))==((void*)(NULL))){
_bc=X52base_class((/*RF2*/(C)->_current_type/*8*/));
_bfbc=(/*RF2*/((T290*)((/*RF2*/(C)->_base_feature/*24*/)))->_base_class/*4*/);
/*[IF*/
if((_bc)==((void*)(_bfbc))){
R=(/*RF2*/((T290*)((/*RF2*/(C)->_base_feature/*24*/)))->_clients/*16*/);
}
else{
R=r51clients_for(((T51*)_bc),(/*RF2*/(C)->_name/*12*/));
}
/*FI]*/
(/*SFN*/C->_clients_memory)=R;
}
else{
R=(/*RF2*/(C)->_clients_memory/*4*/);
}
/*FI]*/
return R;
}
void r337put_c_name_tag(T337* C){
T0* _fn=NULL;
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\42');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
_fn=/*(IRF4.6first_name*/(/*RF2*/(((T83*)((/*RF2*/((T290*)((/*RF2*/(C)->_base_feature/*24*/)))->_names/*8*/))))->_first/*0*/)/*)*/;
/*[IF*/
if((X82to_key(_fn))!=((void*)(X82to_key((/*RF2*/(C)->_name/*12*/))))){
X82put_cpp_tag((/*RF2*/(C)->_name/*12*/));
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),X82to_string((/*RF2*/(C)->_name/*12*/)));
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\40');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\50');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
X82put_cpp_tag(_fn);
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),X82to_string(_fn));
/*]*/
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms334_1108));
/*]*/
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),(/*RF2*/((T61*)(/*(IRF4.6base_class_name*/(/*RF2*/(((T51*)((/*RF2*/((T290*)((/*RF2*/(C)->_base_feature/*24*/)))->_base_class/*4*/))))->_name/*18*/)/*)*/))->_to_string/*8*/));
/*]*/
/*[IF*/
if((X82to_key(_fn))!=((void*)(X82to_key((/*RF2*/(C)->_name/*12*/))))){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\42');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
void r337std_compute_use_current(T337* C){
/*[IF*/
if(((/*RF2*/(C)->_use_current_state/*16*/))==(24)){
/*[IF*/
if(((/*RF2*/(C)->_require_assertion/*32*/))!=((void*)(NULL))){
/*[IF*/
if(r376use_current((T376*)((/*RF2*/(C)->_require_assertion/*32*/)))){
(/*SFN*/C->_use_current_state)=22;
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_use_current_state/*16*/))==(24)){
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_use_current_state/*16*/))==(24)){
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_use_current_state/*16*/))==(24)){
/*[IF*/
if(((/*RF2*/(C)->_ensure_assertion/*36*/))!=((void*)(NULL))){
/*[IF*/
if(r214use_current((T214*)((/*RF2*/(C)->_ensure_assertion/*36*/)))){
(/*SFN*/C->_use_current_state)=22;
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_use_current_state/*16*/))==(24)){
(/*SFN*/C->_use_current_state)=21;
}
/*FI]*/
}
T0* r337run_ensure(T337* C){
T0* R=NULL;
R=r51run_ensure((T51*)(X52base_class((/*RF2*/(C)->_current_type/*8*/))),(T0*)C);
return R;
}
void r337default_mapping_function(T337* C){
T6 _tcbd=0;
T6 _uc=0;
T6 _no_check=0;
_no_check=r47no_check((T47*)(oBC13run_control));
_uc=r337use_current(C);
/*[IF*/
if(!(_uc)){
_tcbd=r325target_cannot_be_dropped((T325*)(oBC13cpp));
/*[IF*/
if(_tcbd){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\54');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
}
/*FI]*/
r337mapping_name(C);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\50');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
/*[IF*/
if(_no_check){
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms334_759));
/*]*/
}
/*FI]*/
/*[IF*/
if(_uc){
/*[IF*/
if(_no_check){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\54');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
r325put_target_as_target((T325*)(oBC13cpp));
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_arguments/*28*/))!=((void*)(NULL))){
/*[IF*/
if((_uc)||(_no_check)){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\54');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
r325put_arguments((T325*)(oBC13cpp));
}
/*FI]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
/*[IF*/
if((!(_uc))&&(_tcbd)){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
}
void r337make(T337* C,T0* a1,T0* a2,T0* a3){
(/*SFN*/C->_current_type)=a1;
(/*SFN*/C->_name)=a2;
(/*SFN*/C->_base_feature)=a3;
r50add_rf((T50*)(r337run_class(C)),(T0*)C,X82to_key(a2));
r49incr_magic_count((T49*)(oBC13small_eiffel));
(/*SFN*/C->_use_current_state)=23;
(/*SFN*/C->_stupid_switch_state)=23;
r49push((T49*)(oBC13small_eiffel),(T0*)C);
r337initialize(C);
r49pop((T49*)(oBC13small_eiffel));
}
void r337external_prototype_for(T337* C,T0* a1,T0* a2){
T0* _t=NULL;
/*[IRF3.3clear*/((((T7*)((T7*)(oBC334c_code))))->_count)=(0);
/*]*/
r7append((T7*)(oBC334c_code),a1);
_t=/*(IRF4.1result_type*/NULL/*)*/;
/*[IF*/
if((_t)==((void*)(NULL))){
r7append((T7*)(oBC334c_code),((T0*)ms14_1736a));
}
else{
X52c_type_for_external_in(_t,oBC334c_code);
}
/*FI]*/
r7extend((T7*)(oBC334c_code),((T3)'\40'));
r7append((T7*)(oBC334c_code),/*SSFRF4*//*X289external_c_name*/r291external_c_name(((T291*)a2)));
r7extend((T7*)(oBC334c_code),((T3)'\50'));
/*[IF*/
if(X289use_current(a2)){
X52c_type_for_external_in((/*RF2*/(C)->_current_type/*8*/),oBC334c_code);
r7extend((T7*)(oBC334c_code),((T3)'\40'));
r7extend((T7*)(oBC334c_code),((T3)'C'));
/*[IF*/
if(((/*RF2*/(C)->_arguments/*28*/))!=((void*)(NULL))){
r7extend((T7*)(oBC334c_code),((T3)'\54'));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_arguments/*28*/))==((void*)(NULL))){
/*[IF*/
if(!(X289use_current(a2))){
r7append((T7*)(oBC334c_code),((T0*)ms14_1736a));
}
/*FI]*/
}
else{
r178external_prototype_in((T178*)((/*RF2*/(C)->_arguments/*28*/)),oBC334c_code);
}
/*FI]*/
r7extend((T7*)(oBC334c_code),((T3)'\51'));
}
T2 r337arg_count(T337* C){
T2 R=0;
/*[IF*/
if(((/*RF2*/(C)->_arguments/*28*/))!=((void*)(NULL))){
R=/*(IRF4.6count*/(/*RF2*/(((T182*)((/*RF2*/((T178*)((/*RF2*/(C)->_arguments/*28*/)))->_flat_list/*8*/))))->_upper/*12*/)/*)*/;
}
/*FI]*/
return R;
}
void r337c_define_opening(T337* C){
T0* _oresult=NULL;
T6 _ensure_check=0;
T6 _no_check=0;
T0* _t=NULL;
_no_check=r47no_check((T47*)(oBC13run_control));
_ensure_check=r47ensure_check((T47*)(oBC13run_control));
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
/*AF*//*AF*//*AE*/
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
if(_ensure_check){
/*[IF*/
if(((/*RF2*/(C)->_ensure_assertion/*36*/))!=((void*)(NULL))){
r214c_declare_for_old((T214*)((/*RF2*/(C)->_ensure_assertion/*36*/)));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(_no_check){
/*[IF*/
if(((/*RF2*/((T203*)(oBC13c_frame_descriptor_local_count))->_value/*0*/))>(0)){
r7copy((T7*)(oBC334c_code),((T0*)ms334_21567));
/*[IRF3.5append_in*/r2append_in(((T2)((/*RF2*/((T203*)(oBC13c_frame_descriptor_local_count))->_value/*0*/))),oBC334c_code);
/*]*/
r7extend((T7*)(oBC334c_code),((T3)'\135'));
r7append((T7*)(oBC334c_code),((T0*)ms14_138));
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),oBC334c_code);
/*]*/
}
/*FI]*/
r337c_initialize_ds_one_by_one(C);
/*[IRF3.2c_initialize_locals_one_by_one*/{T3 _c=0;
T2 _j=0;
T2 _i=0;
_j=1;
while (!(((/*RF2*/((T203*)(oBC13c_frame_descriptor_local_count))->_value/*0*/))==(_i)))
{
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms334_8120));
/*]*/
/*[IRF3.5put_integer*/r48put_integer(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),_i);
/*]*/
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms334_308));
/*]*/
_c=/*(IRF4.6item*/((/*RF2*/((T7*)(oBC13c_frame_descriptor_locals))->_storage/*0*/))[(_j)-(1)]/*)*/;
while (!((_c)==(((T3)'\54'))))
{
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=_c;
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
_j=(_j)+(1);
_c=/*(IRF4.6item*/((/*RF2*/((T7*)(oBC13c_frame_descriptor_locals))->_storage/*0*/))[(_j)-(1)]/*)*/;
}
_j=(_j)+(1);
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms14_138));
/*]*/
_i=(_i)+(1);
}
}/*]*/
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms334_14520a));
/*]*/
}
/*FI]*/
/*[IF*/
if(_ensure_check){
/*[IF*/
if(((/*RF2*/(C)->_ensure_assertion/*36*/))!=((void*)(NULL))){
r214compile_to_c_old((T214*)((/*RF2*/(C)->_ensure_assertion/*36*/)));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_require_assertion/*32*/))!=((void*)(NULL))){
r376compile_to_c((T376*)((/*RF2*/(C)->_require_assertion/*32*/)));
}
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
void r337c_define_closing(T337* C){
/*[IF*/
if(r47ensure_check((T47*)(oBC13run_control))){
/*[IF*/
if(((/*RF2*/(C)->_ensure_assertion/*36*/))!=((void*)(NULL))){
r214compile_to_c((T214*)((/*RF2*/(C)->_ensure_assertion/*36*/)));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(r337use_current(C)){
/*[IF*/
if((X82to_string((/*RF2*/(C)->_name/*12*/)))!=((void*)(((T0*)ms15_8750)))){
r325current_class_invariant((/*RF2*/(C)->_current_type/*8*/));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
if(r47no_check((T47*)(oBC13run_control))){
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms334_19400));
/*]*/
}
/*FI]*/
}
void r337c_assertion_flag(T337* C){
/*[IRF3.3clear*/((((T7*)((T7*)(oBC334c_code))))->_count)=(0);
/*]*/
r337c_frame_descriptor_name_in(C,oBC334c_code);
r7append((T7*)(oBC334c_code),((T0*)ms334_30285));
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),oBC334c_code);
/*]*/
}
void r337c_define_with_body(T337* C,T0* a1){
r337define_prototype(C);
r337c_define_opening(C);
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),a1);
/*]*/
r337c_define_closing(C);
/*[IF*/
{/*AT*//*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms14_270a));
/*]*/
}
/*FI]*/
r337c_frame_descriptor(C);
}
void r337initialize(T337* C){
T0* _n=NULL;
_n=X82to_string(/*(IRF4.6first_name*/(/*RF2*/(((T83*)((/*RF2*/((T290*)((/*RF2*/(C)->_base_feature/*24*/)))->_names/*8*/))))->_first/*0*/)/*)*/);
(/*SFN*/C->_arguments)=(/*RF2*/((T290*)((/*RF2*/(C)->_base_feature/*24*/)))->_arguments/*20*/);
/*[IF*/
if(((/*RF2*/(C)->_arguments/*28*/))!=((void*)(NULL))){
/*[IF*/
if(!(r178is_runnable((T178*)((/*RF2*/(C)->_arguments/*28*/)),(/*RF2*/(C)->_current_type/*8*/)))){
{T178*n=((T178*)malloc(sizeof(*n))/*12*/);
*n=M178;
r178with(n,(/*RF2*/(C)->_arguments/*28*/),(/*RF2*/(C)->_current_type/*8*/));
(/*SFN*/C->_arguments)=((T0*)n);
}
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(r47require_check((T47*)(oBC13run_control))){
/*[IF*/
if(((((T0*)ms15_1772))==((void*)(X82to_string((/*RF2*/(C)->_name/*12*/)))))&&(X52is_expanded((/*RF2*/(C)->_current_type/*8*/)))){
}
else{
(/*SFN*/C->_require_assertion)=r337run_require(C);
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(r47ensure_check((T47*)(oBC13run_control))){
(/*SFN*/C->_ensure_assertion)=r337run_ensure(C);
}
/*FI]*/
/*[IF*/
if((((T0*)ms15_32730))==((void*)(_n))){
/*[IRF3.3set_used*/((((T380*)((T380*)(oBC13exceptions_handler))))->_used)=(1);
/*]*/
}
/*FI]*/
}
void r337compute_stupid_switch(T337* C,T0* a1){
/*[IF*/
if(X288stupid_switch_procedure((/*RF2*/((T290*)((/*RF2*/(C)->_base_feature/*24*/)))->_native/*40*/),a1,X82to_string((/*RF2*/(C)->_name/*12*/)))){
(/*SFN*/C->_stupid_switch_state)=22;
}
else{
(/*SFN*/C->_stupid_switch_state)=21;
}
/*FI]*/
}
void r337mapping_c(T337* C){
T0* _bcn=NULL;
T0* _native=NULL;
T0* _bf=NULL;
_bf=(/*RF2*/(C)->_base_feature/*24*/);
_native=(/*RF2*/(((T290*)_bf))->_native/*40*/);
_bcn=(/*RF2*/((T61*)((/*RF2*/((T51*)((/*RF2*/(((T290*)_bf))->_base_class/*4*/)))->_name/*18*/)))->_to_string/*8*/);
X288c_mapping_procedure(_native,(T0*)C,_bcn,X82to_string(/*(IRF4.6first_name*/(/*RF2*/(((T83*)((/*RF2*/(((T290*)_bf))->_names/*8*/))))->_first/*0*/)/*)*/));
}
void r337routine_afd_check(T337* C){
/*[IF*/
if(((/*RF2*/(C)->_require_assertion/*32*/))!=((void*)(NULL))){
r376afd_check((T376*)((/*RF2*/(C)->_require_assertion/*32*/)));
}
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_ensure_assertion/*36*/))!=((void*)(NULL))){
r214afd_check((T214*)((/*RF2*/(C)->_ensure_assertion/*36*/)));
}
/*FI]*/
}
T0* r337run_require(T337* C){
T0* R=NULL;
R=r51run_require((T51*)(X52base_class((/*RF2*/(C)->_current_type/*8*/))),(T0*)C);
return R;
}
void r337mapping_name(T337* C){
/*[IRF3.3clear*/((((T7*)((T7*)(oBC334c_code))))->_count)=(0);
/*]*/
r7extend((T7*)(oBC334c_code),((T3)'r'));
r2append_in(r337id(C),oBC334c_code);
X82mapping_c_in((/*RF2*/(C)->_name/*12*/),oBC334c_code);
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),oBC334c_code);
/*]*/
}
void r337c_initialize_ds_one_by_one(T337* C){
r7copy((T7*)(oBC334c_code),((T0*)ms334_36950));
r337c_frame_descriptor_name_in(C,oBC334c_code);
r7append((T7*)(oBC334c_code),((T0*)ms14_138));
/*[IF*/
if(r337use_current(C)){
r7append((T7*)(oBC334c_code),((T0*)ms334_18175));
}
else{
r7append((T7*)(oBC334c_code),((T0*)ms334_10999));
}
/*FI]*/
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),oBC334c_code);
/*]*/
{T68 se_tmp0;
r325put_position_in_ds(/*(IRF4.6start_position*/(*(se_tmp0=r290start_position(((T290*)((/*RF2*/(C)->_base_feature/*24*/)))),&se_tmp0))/*)*/);
}
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms334_11466));
/*]*/
/*[IF*/
if(((/*RF2*/((T203*)(oBC13c_frame_descriptor_local_count))->_value/*0*/))>(0)){
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms334_11880));
/*]*/
}
/*FI]*/
}
T6 r337use_current(T337* C){
T6 R=0;
{int z1=(/*RF2*/(C)->_use_current_state/*16*/);
if((22==z1)){
R=1;
}
else
if((21==z1)){
}
else
if((23==z1)){
(/*SFN*/C->_use_current_state)=24;
r337compute_use_current(C);
R=((/*RF2*/(C)->_use_current_state/*16*/))==(22);
}
else {R=1;
}}
return R;
}
T6 r337is_exported_in(T337* C,T0* a1){
T6 R=0;
R=r99gives_permission_to((T99*)(r337clients(C)),a1);
return R;
}
T0* r337run_class(T337* C){
T0* R=NULL;
R=X52run_class((/*RF2*/(C)->_current_type/*8*/));
return R;
}
void r337fatal_error(T0* a1){
/*[IRF3.6append*/{T0* b1=a1;
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r66print_as_fatal_error((T66*)(oBC13eh));
}
T0* r337stupid_switch(T337* C,T0* a1){
T0* R=NULL;
{int z1=(/*RF2*/(C)->_stupid_switch_state/*20*/);
if((22==z1)){
R=((T0*)ms337_5488);
}
else
if((21==z1)){
}
else
if((23==z1)){
(/*SFN*/C->_stupid_switch_state)=24;
r337compute_stupid_switch(C,a1);
/*[IF*/
if(((/*RF2*/(C)->_stupid_switch_state/*20*/))==(22)){
R=((T0*)ms337_5488);
}
/*FI]*/
}
else {}}
return R;
}
void r337define_prototype(T337* C){
T6 _no_check=0;
T2 _mem_id=0;
_no_check=r47no_check((T47*)(oBC13run_control));
/*[IF*/
if(r47no_check((T47*)(oBC13run_control))){
/*[IRF3.3reset*/((((T203*)((T203*)(oBC13c_frame_descriptor_local_count))))->_value)=(0);
/*]*/
/*[IRF3.3clear*/((((T7*)((T7*)(oBC13c_frame_descriptor_format))))->_count)=(0);
/*]*/
r7extend((T7*)(oBC13c_frame_descriptor_format),((T3)'\42'));
/*[IRF3.3clear*/((((T7*)((T7*)(oBC13c_frame_descriptor_locals))))->_count)=(0);
/*]*/
}
/*FI]*/
_mem_id=r337id(C);
/*[IRF3.3clear*/((((T7*)((T7*)(oBC334c_code))))->_count)=(0);
/*]*/
/*[IF*/
{/*AT*/r7append((T7*)(oBC334c_code),((T0*)ms14_1736a));
}
/*FI]*/
r7extend((T7*)(oBC334c_code),((T3)'\40'));
r7extend((T7*)(oBC334c_code),((T3)'r'));
r2append_in(_mem_id,oBC334c_code);
X82mapping_c_in((/*RF2*/(C)->_name/*12*/),oBC334c_code);
r7extend((T7*)(oBC334c_code),((T3)'\50'));
/*[IF*/
if(_no_check){
r7append((T7*)(oBC334c_code),((T0*)ms334_56160));
/*[IF*/
if((r337use_current(C))||(((/*RF2*/(C)->_arguments/*28*/))!=((void*)(NULL)))){
r7extend((T7*)(oBC334c_code),((T3)'\54'));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(r337use_current(C)){
X52c_type_for_target_in((/*RF2*/(C)->_current_type/*8*/),oBC334c_code);
r7extend((T7*)(oBC334c_code),((T3)'\40'));
r7extend((T7*)(oBC334c_code),((T3)'C'));
X52c_frame_descriptor((/*RF2*/(C)->_current_type/*8*/));
/*[IF*/
if(((/*RF2*/(C)->_arguments/*28*/))!=((void*)(NULL))){
r7extend((T7*)(oBC334c_code),((T3)'\54'));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_arguments/*28*/))==((void*)(NULL))){
/*[IF*/
if(_no_check){
}
else if(!(r337use_current(C))){
r7append((T7*)(oBC334c_code),((T0*)ms14_1736a));
}
/*FI]*/
}
else{
r178compile_to_c_in((T178*)((/*RF2*/(C)->_arguments/*28*/)),oBC334c_code);
}
/*FI]*/
r7extend((T7*)(oBC334c_code),((T3)'\51'));
r325put_c_heading((T325*)(oBC13cpp),oBC334c_code);
/*[IRF3.3swap_on_c*/((((T325*)((T325*)(oBC13cpp))))->_current_out)=(oBC325out_c);
/*]*/
}
void r337c_frame_descriptor(T337* C){
/*[IF*/
if(r47no_check((T47*)(oBC13run_control))){
r7copy((T7*)(oBC334c_code),((T0*)ms334_23340));
r337c_frame_descriptor_name_in(C,oBC334c_code);
r325put_extern7((T325*)(oBC13cpp),oBC334c_code);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\173');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
r337put_c_name_tag(C);
/*[IRF3.3clear*/((((T7*)((T7*)(oBC334c_code))))->_count)=(0);
/*]*/
r7extend((T7*)(oBC334c_code),((T3)'\54'));
/*[IF*/
if(r337use_current(C)){
r7extend((T7*)(oBC334c_code),((T3)'1'));
}
else{
r7extend((T7*)(oBC334c_code),((T3)'0'));
}
/*FI]*/
r7extend((T7*)(oBC334c_code),((T3)'\54'));
/*[IRF3.5append_in*/r2append_in(((T2)((/*RF2*/((T203*)(oBC13c_frame_descriptor_local_count))->_value/*0*/))),oBC334c_code);
/*]*/
r7extend((T7*)(oBC334c_code),((T3)'\54'));
r7append((T7*)(oBC334c_code),oBC13c_frame_descriptor_format);
r7append((T7*)(oBC334c_code),((T0*)ms334_2226));
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),oBC334c_code);
/*]*/
}
/*FI]*/
}
void r337c_frame_descriptor_name_in(T337* C,T0* a1){
r7extend(((T7*)a1),((T3)'f'));
r2append_in(r337id(C),a1);
X82mapping_c_in((/*RF2*/(C)->_name/*12*/),a1);
}
void r273standard_c_object_model(T273* C){
T0* _rc=NULL;
T2 _mem_id=0;
_rc=r273run_class(C);
_mem_id=(/*RF2*/(((T50*)_rc))->_id/*4*/);
/*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms52_783104)))))->_count)=(0);
/*]*/
r7extend((T7*)(((T0*)ms52_783104)),((T3)'T'));
r2append_in(_mem_id,((T0*)ms52_783104));
r7extend((T7*)(((T0*)ms52_783104)),((T3)'\40'));
r7extend((T7*)(((T0*)ms52_783104)),((T3)'M'));
r2append_in(_mem_id,((T0*)ms52_783104));
r325put_extern7((T325*)(oBC13cpp),((T0*)ms52_783104));
/*[IRF3.3swap_on_c*/((((T325*)((T325*)(oBC13cpp))))->_current_out)=(oBC325out_c);
/*]*/
/*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms52_783104)))))->_count)=(0);
/*]*/
r50c_object_model_in(((T50*)_rc),((T0*)ms52_783104));
r7append((T7*)(((T0*)ms52_783104)),((T0*)ms14_138));
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms52_783104));
/*]*/
r325swap_on_h((T325*)(oBC13cpp));
}
void r273gc_free_in(T273* C,T0* a1){
r7append(((T7*)a1),((T0*)ms52_8540));
r2append_in(r273id(C),a1);
}
void r273standard_gc_info_in(T273* C,T0* a1){
r7append(((T7*)a1),((T0*)ms52_22591a));
r7append(((T7*)a1),r273run_time_mark(C));
r7append(((T7*)a1),((T0*)ms14_5895));
r273gc_info_nb_in(C,a1);
r7append(((T7*)a1),((T0*)ms14_330));
r7append(((T7*)a1),((T0*)ms52_22591));
r273gc_store_left_in(C,a1);
r7append(((T7*)a1),((T0*)ms14_5895));
r273gc_store_left_in(C,a1);
r7append(((T7*)a1),((T0*)ms14_330));
}
T6 r273need_gc_mark_function(T273* C){
T6 R=0;
/*[IF*/
if(r273is_reference(C)){
R=1;
}
else{
R=r50gc_mark_to_follow((T50*)(r273run_class(C)));
}
/*FI]*/
return R;
}
void r273standard_c_print_function(T273* C){
/*[IF*/
if(r47no_check((T47*)(oBC13run_control))){
r50c_print_function((T50*)(r273run_class(C)));
}
/*FI]*/
}
T6 r273is_written_runnable(T273* C){
T6 R=0;
T0* _t=NULL;
T2 _i=0;
/*[IF*/
if(((/*RF2*/(C)->_run_type_memory/*16*/))==((void*)(C))){
R=1;
}
else if(((/*RF2*/(C)->_run_type_memory/*16*/))==((void*)(NULL))){
R=1;
_i=(/*RF2*/((T258*)((/*RF2*/(C)->_generic_list/*8*/)))->_upper/*8*/);
while (!((!(R))||((_i)==(0))))
{
_t=r258item((T258*)((/*RF2*/(C)->_generic_list/*8*/)),_i);
/*[IF*/
if(X52is_run_type(_t)){
/*[IF*/
if((X52run_type(_t))==((void*)(_t))){
}
else{
R=0;
}
/*FI]*/
}
else{
R=0;
}
/*FI]*/
_i=(_i)-(1);
}
/*[IF*/
if(R){
(/*SFN*/C->_run_type_memory)=((T0*)(C));
r273basic_checks(C);
}
/*FI]*/
}
/*FI]*/
return R;
}
T2 r273id(T273* C){
T2 R=0;
R=(/*RF2*/((T50*)(r273run_class(C)))->_id/*4*/);
return R;
}
void r273cast_to_ref(T273* C){
r273cast_to_ref((T273*)(r273run_type(C)));
}
void r273just_before_gc_mark_in(T273* C,T0* a1){
/*[IF*/
if(r273is_reference(C)){
r273standard_just_before_gc_mark_in(C,a1);
}
/*FI]*/
}
T0*oBC273tmp_mark=NULL;
void r273c_header_pass3(T273* C){
/*[IF*/
if(r273is_expanded(C)){
/*[IF*/
if(r273need_c_struct(C)){
r273standard_c_struct(C);
}
/*FI]*/
r273standard_c_object_model(C);
}
/*FI]*/
}
void r273gc_call_new_in(T273* C,T0* a1){
r7append(((T7*)a1),((T0*)ms14_990));
r2append_in(r273id(C),a1);
r7extend(((T7*)a1),((T3)'\50'));
r7extend(((T7*)a1),((T3)'\51'));
}
void r273standard_c_struct(T273* C){
T0* _t=NULL;
T0* _a=NULL;
T2 _mem_id=0;
T2 _i=0;
T0* _wa=NULL;
_mem_id=r273id(C);
_wa=r50writable_attributes((T50*)(r273run_class(C)));
r7copy((T7*)(((T0*)ms52_783104)),((T0*)ms14_5495));
r7extend((T7*)(((T0*)ms52_783104)),((T3)'S'));
r2append_in(_mem_id,((T0*)ms52_783104));
r7extend((T7*)(((T0*)ms52_783104)),((T3)'\173'));
/*[IF*/
if(r273is_reference(C)){
/*[IF*/
if(r50is_tagged((T50*)(r273run_class(C)))){
r7append((T7*)(((T0*)ms52_783104)),((T0*)ms52_5873));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((_wa)!=((void*)(NULL))){
_i=(/*RF2*/(((T346*)_wa))->_upper/*12*/);
while (!((_i)==(0)))
{
_a=r346item(((T346*)_wa),_i);
_t=X52run_type((/*RF2*/(((T345*)_a))->_result_type/*28*/));
X52c_type_for_result_in(_t,((T0*)ms52_783104));
r7extend((T7*)(((T0*)ms52_783104)),((T3)'\40'));
r7extend((T7*)(((T0*)ms52_783104)),((T3)'\137'));
r7append((T7*)(((T0*)ms52_783104)),X82to_string((/*RF2*/(((T345*)_a))->_name/*12*/)));
r7extend((T7*)(((T0*)ms52_783104)),((T3)'\73'));
_i=(_i)-(1);
}
}
/*FI]*/
r7extend((T7*)(((T0*)ms52_783104)),((T3)'\175'));
r7append((T7*)(((T0*)ms52_783104)),((T0*)ms14_138));
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms52_783104));
/*]*/
/*[IF*/
if(r273is_expanded(C)){
r7copy((T7*)(((T0*)ms52_783104)),((T0*)ms14_993));
r7extend((T7*)(((T0*)ms52_783104)),((T3)'\40'));
r7append((T7*)(((T0*)ms52_783104)),((T0*)ms14_7749));
r2append_in(_mem_id,((T0*)ms52_783104));
r7append((T7*)(((T0*)ms52_783104)),((T0*)ms52_248));
r2append_in(_mem_id,((T0*)ms52_783104));
r7append((T7*)(((T0*)ms52_783104)),((T0*)ms52_1600));
r2append_in(_mem_id,((T0*)ms52_783104));
r7append((T7*)(((T0*)ms52_783104)),((T0*)ms52_936));
r325put_c_function((T325*)(oBC13cpp),((T0*)ms52_783104),((T0*)ms52_87312));
}
/*FI]*/
}
T0* r273base_class(T273* C){
T0* R=NULL;
T0* _bcn=NULL;
_bcn=(/*RF2*/(C)->_base_class_name/*4*/);
/*[IF*/
if((_bcn)!=((void*)(NULL))){
R=r61base_class(((T61*)_bcn));
}
else{
/*[IRF3.6append*/{T0* b1=((T0*)ms52_36693);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r66add_type((T0*)C,((T0*)ms14_46));
r66print_as_fatal_error((T66*)(oBC13eh));
}
/*FI]*/
return R;
}
void r273gc_store_chunk_in(T273* C,T0* a1){
r7append(((T7*)a1),((T0*)ms52_19074));
r2append_in(r273id(C),a1);
}
T0* r273look_up_for(T273* C,T0* a1,T0* a2){
T0* R=NULL;
R=r51look_up_for((T51*)(r273base_class(C)),a1,a2);
return R;
}
T2 r273c_sizeof(T273* C){
T2 R=0;
/*[IF*/
if(r273is_reference(C)){
R=r273c_sizeof_pointer();
}
else{
R=r50c_sizeof((T50*)(r273run_class(C)));
}
/*FI]*/
return R;
}
T6 r273has_creation(T273* C,T0* a1){
T6 R=0;
R=r51has_creation((T51*)(r273base_class(C)),a1);
return R;
}
void r273basic_checks(T273* C){
T0* _fgl=NULL;
T0* _bc=NULL;
_bc=r273base_class(C);
_fgl=(/*RF2*/(((T51*)_bc))->_formal_generic_list/*22*/);
/*[IF*/
if((_fgl)==((void*)(NULL))){
r66add_position(/*(IRF4.6start_position*/(/*RF2*/(((T61*)((/*RF2*/(C)->_base_class_name/*4*/))))->_start_position/*0*/)/*)*/);
/*[IRF3.6append*/{T0* b1=(/*RF2*/((T61*)((/*RF2*/(((T51*)_bc))->_name/*18*/)))->_to_string/*8*/);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r273fatal_error(((T0*)ms273_35952));
}
else if((/*(IRF4.6count*/(/*RF2*/(((T279*)((/*RF2*/(((T94*)_fgl))->_list/*8*/))))->_upper/*8*/)/*)*/)!=(r258count((T258*)((/*RF2*/(C)->_generic_list/*8*/))))){
r66add_position(/*(IRF4.6start_position*/(/*RF2*/(((T61*)((/*RF2*/(C)->_base_class_name/*4*/))))->_start_position/*0*/)/*)*/);
r66add_position((/*RF2*/(((T94*)_fgl))->_start_position/*0*/));
r273fatal_error(((T0*)ms14_60064));
}
/*FI]*/
}
T6 r273need_c_struct(T273* C){
T6 R=0;
/*[IF*/
if(r273is_dummy_expanded(C)){
}
else if(r273is_expanded(C)){
R=1;
}
else if(r50is_tagged((T50*)(r273run_class(C)))){
R=1;
}
else{
R=(r50writable_attributes((T50*)(r273run_class(C))))!=((void*)(NULL));
}
/*FI]*/
return R;
}
void r273mapping_cast(T273* C){
/*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms52_15456)))))->_count)=(0);
/*]*/
r7extend((T7*)(((T0*)ms52_15456)),((T3)'\50'));
r273c_type_for_target_in(C,((T0*)ms52_15456));
r7extend((T7*)(((T0*)ms52_15456)),((T3)'\51'));
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms52_15456));
/*]*/
}
void r273gc_align_mark_in(T273* C,T0* a1){
r7append(((T7*)a1),((T0*)ms52_24609));
r2append_in(r273id(C),a1);
}
T0* r273actual_reference(T273* C,T0* a1){
T0* R=NULL;
T68 _sp={NULL,0};
{T68 se_tmp0;
_sp=(*(se_tmp0=X52start_position(a1),&se_tmp0));
}
{T389*n=((T389*)malloc(sizeof(*n))/*24*/);
*n=M389;
r389from_expanded(n,_sp,(T0*)C);
R=((T0*)n);
}
return R;
}
T6 r273is_a_in(T273* C,T0* a1,T0* a2){
T6 R=0;
T0* _ct=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
/*[IF*/
if(((/*RF2*/(C)->_written_mark/*12*/))==((void*)(X52written_mark(a1)))){
R=1;
}
else{
_ct=(/*RF2*/(((T50*)a2))->_current_type/*0*/);
_t1=r273to_runnable(C,_ct);
_t2=X52to_runnable(a1,_ct);
/*[IF*/
if((X52run_time_mark(_t1))==((void*)(X52run_time_mark(_t2)))){
R=1;
}
else{
R=X52is_a(_t1,_t2);
}
/*FI]*/
}
/*FI]*/
return R;
}
void r273standard_c_typedef(T273* C){
T2 _mem_id=0;
_mem_id=r273id(C);
/*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms52_783104)))))->_count)=(0);
/*]*/
/*[IF*/
if(r273need_c_struct(C)){
r7append((T7*)(((T0*)ms52_783104)),((T0*)ms14_6448));
r7append((T7*)(((T0*)ms52_783104)),((T0*)ms14_5495));
r7extend((T7*)(((T0*)ms52_783104)),((T3)'S'));
r2append_in(_mem_id,((T0*)ms52_783104));
r7extend((T7*)(((T0*)ms52_783104)),((T3)'\40'));
r7extend((T7*)(((T0*)ms52_783104)),((T3)'T'));
r2append_in(_mem_id,((T0*)ms52_783104));
r7append((T7*)(((T0*)ms52_783104)),((T0*)ms14_138));
}
else if(r273is_dummy_expanded(C)){
r7append((T7*)(((T0*)ms52_783104)),((T0*)ms14_6448));
r7append((T7*)(((T0*)ms52_783104)),((T0*)ms14_993));
r7extend((T7*)(((T0*)ms52_783104)),((T3)'\40'));
r7extend((T7*)(((T0*)ms52_783104)),((T3)'T'));
r2append_in(_mem_id,((T0*)ms52_783104));
r7append((T7*)(((T0*)ms52_783104)),((T0*)ms14_138));
}
else if(r273is_reference(C)){
r7append((T7*)(((T0*)ms52_783104)),((T0*)ms14_6448));
r7append((T7*)(((T0*)ms52_783104)),((T0*)ms14_1736a));
r7extend((T7*)(((T0*)ms52_783104)),((T3)'\52'));
r7extend((T7*)(((T0*)ms52_783104)),((T3)'T'));
r2append_in(_mem_id,((T0*)ms52_783104));
r7append((T7*)(((T0*)ms52_783104)),((T0*)ms14_138));
}
/*FI]*/
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms52_783104));
/*]*/
}
T6 r273is_native_array(T273* C){
T6 R=0;
T0* _tna=NULL;
_tna=NULL;
R=(_tna)!=((void*)(NULL));
return R;
}
T6 r273is_a(T273* C,T0* a1){
T6 R=0;
T0* _t2=NULL;
T0* _t1=NULL;
T2 _i=0;
/*[IF*/
if(X52is_none(a1)){
}
else if((r273run_class(C))==((void*)(X52run_class(a1)))){
R=1;
}
else if(X52is_generic(a1)){
/*[IF*/
if((r273base_class(C))==((void*)(X52base_class(a1)))){
R=1;
_i=(/*RF2*/((T258*)((/*RF2*/(C)->_generic_list/*8*/)))->_upper/*8*/);
while (!((!(R))||((_i)==(0))))
{
_t1=X52run_type(r258item((T258*)((/*RF2*/(C)->_generic_list/*8*/)),_i));
_t2=X52run_type(r258item((T258*)(X52generic_list(a1)),_i));
/*[IF*/
if(X52is_a(_t1,_t2)){
_i=(_i)-(1);
}
else{
R=0;
/*[IRF3.6append*/{T0* b1=((T0*)ms14_28644);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
}
/*FI]*/
}
}
else if(r51is_subclass_of((T51*)(r273base_class(C)),X52base_class(a1))){
R=r51is_a_vncg((T51*)(r273base_class(C)),(T0*)C,a1);
}
/*FI]*/
}
else{
/*[IF*/
if(r51is_subclass_of((T51*)(r273base_class(C)),X52base_class(a1))){
R=1;
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(!(R)){
r66add_type((T0*)C,((T0*)ms14_17460));
r66add_type(a1,((T0*)ms273_16976));
}
/*FI]*/
return R;
}
void r273make(T273* C,T0* a1,T0* a2){
T0* _t=NULL;
T2 _i=0;
(/*SFN*/C->_base_class_name)=a1;
(/*SFN*/C->_generic_list)=a2;
r7copy((T7*)(oBC273tmp_mark),(/*RF2*/(((T61*)a1))->_to_string/*8*/));
r7extend((T7*)(oBC273tmp_mark),((T3)'\133'));
_i=1;
while (!((_i)>((/*RF2*/(((T258*)a2))->_upper/*8*/))))
{
_t=r258item(((T258*)a2),_i);
r7append((T7*)(oBC273tmp_mark),X52written_mark(_t));
_i=(_i)+(1);
/*[IF*/
if((_i)<=((/*RF2*/(((T258*)a2))->_upper/*8*/))){
r7extend((T7*)(oBC273tmp_mark),((T3)'\54'));
}
/*FI]*/
}
r7extend((T7*)(oBC273tmp_mark),((T3)'\135'));
(/*SFN*/C->_written_mark)=((/*UT*/(void)((T21*)(r273string_aliaser()))),r21item(oBC273tmp_mark));
}
void r273gc_store_left_in(T273* C,T0* a1){
r7append(((T7*)a1),((T0*)ms52_17170));
r2append_in(r273id(C),a1);
}
T2 r273c_sizeof_pointer(void){
T2 R=0;
T8 _p=NULL;
R=sizeof(T8);
return R;
}
T0* r273run_type(T273* C){
T0* R=NULL;
/*[IF*/
if(r273is_run_type(C)){
R=(/*RF2*/(C)->_run_type_memory/*16*/);
}
/*FI]*/
return R;
}
T6 r273is_reference(T273* C){
T6 R=0;
R=!((/*RF2*/((T51*)(r273base_class(C)))->_is_expanded/*17*/));
return R;
}
T6 r273is_user_expanded(T273* C){
T6 R=0;
R=(/*RF2*/((T51*)(r273base_class(C)))->_is_expanded/*17*/);
return R;
}
T6 r273is_run_type(T273* C){
T6 R=0;
/*[IF*/
if(((/*RF2*/(C)->_run_type_memory/*16*/))!=((void*)(NULL))){
R=1;
}
else if(r273is_written_runnable(C)){
R=1;
}
/*FI]*/
return R;
}
void r273standard_gc_define2_for_expanded(T273* C){
T2 _rcid=0;
T0* _rc=NULL;
_rc=r273run_class(C);
/*[IF*/
if(r50gc_mark_to_follow(((T50*)_rc))){
_rcid=(/*RF2*/(((T50*)_rc))->_id/*4*/);
r7copy((T7*)(((T0*)ms52_783104a)),((T0*)ms14_1736a));
r7extend((T7*)(((T0*)ms52_783104a)),((T3)'\40'));
r273gc_mark_in(C,((T0*)ms52_783104a));
r7append((T7*)(((T0*)ms52_783104a)),((T0*)ms52_248aa));
r2append_in(_rcid,((T0*)ms52_783104a));
r7append((T7*)(((T0*)ms52_783104a)),((T0*)ms52_582a));
/*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms52_3073536)))))->_count)=(0);
/*]*/
r50gc_mark_fixed_size(((T50*)_rc),1,((T0*)ms52_3073536));
r325put_c_function((T325*)(oBC13cpp),((T0*)ms52_783104a),((T0*)ms52_3073536));
}
/*FI]*/
}